Randy Dunlap
2022-Mar-16 19:20 UTC
[PATCH 6/9] usb: gadget: eliminate anonymous module_init & module_exit
Eliminate anonymous module_init() and module_exit(), which can lead to confusion or ambiguity when reading System.map, crashes/oops/bugs, or an initcall_debug log. Give each of these init and exit functions unique driver-specific names to eliminate the anonymous names. Example 1: (System.map) ffffffff832fc78c t init ffffffff832fc79e t init ffffffff832fc8f8 t init Example 2: (initcall_debug log) calling init+0x0/0x12 @ 1 initcall init+0x0/0x12 returned 0 after 15 usecs calling init+0x0/0x60 @ 1 initcall init+0x0/0x60 returned 0 after 2 usecs calling init+0x0/0x9a @ 1 initcall init+0x0/0x9a returned 0 after 74 usecs Fixes: bd25a14edb75 ("usb: gadget: legacy/serial: allow dynamic removal") Fixes: 7bb5ea54be47 ("usb gadget serial: use composite gadget framework") Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") Signed-off-by: Randy Dunlap <rdunlap at infradead.org> Cc: Felipe Balbi <felipe.balbi at linux.intel.com> Cc: Micha? Miros?aw <mirq-linux at rere.qmqm.pl> Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org> Cc: Sebastian Andrzej Siewior <bigeasy at linutronix.de> Cc: linux-usb at vger.kernel.org --- drivers/usb/gadget/legacy/inode.c | 8 ++++---- drivers/usb/gadget/legacy/serial.c | 10 +++++----- drivers/usb/gadget/udc/dummy_hcd.c | 8 ++++---- 3 files changed, 13 insertions(+), 13 deletions(-) --- lnx-517-rc8.orig/drivers/usb/gadget/legacy/serial.c +++ lnx-517-rc8/drivers/usb/gadget/legacy/serial.c @@ -273,7 +273,7 @@ static struct usb_composite_driver gseri static int switch_gserial_enable(bool do_enable) { if (!serial_config_driver.label) - /* init() was not called, yet */ + /* gserial_init() was not called, yet */ return 0; if (do_enable) @@ -283,7 +283,7 @@ static int switch_gserial_enable(bool do return 0; } -static int __init init(void) +static int __init gserial_init(void) { /* We *could* export two configs; that'd be much cleaner... * but neither of these product IDs was defined that way. @@ -314,11 +314,11 @@ static int __init init(void) return usb_composite_probe(&gserial_driver); } -module_init(init); +module_init(gserial_init); -static void __exit cleanup(void) +static void __exit gserial_cleanup(void) { if (enable) usb_composite_unregister(&gserial_driver); } -module_exit(cleanup); +module_exit(gserial_cleanup); --- lnx-517-rc8.orig/drivers/usb/gadget/udc/dummy_hcd.c +++ lnx-517-rc8/drivers/usb/gadget/udc/dummy_hcd.c @@ -2765,7 +2765,7 @@ static struct platform_driver dummy_hcd_ static struct platform_device *the_udc_pdev[MAX_NUM_UDC]; static struct platform_device *the_hcd_pdev[MAX_NUM_UDC]; -static int __init init(void) +static int __init dummy_hcd_init(void) { int retval = -ENOMEM; int i; @@ -2887,9 +2887,9 @@ err_alloc_udc: platform_device_put(the_hcd_pdev[i]); return retval; } -module_init(init); +module_init(dummy_hcd_init); -static void __exit cleanup(void) +static void __exit dummy_hcd_cleanup(void) { int i; @@ -2905,4 +2905,4 @@ static void __exit cleanup(void) platform_driver_unregister(&dummy_udc_driver); platform_driver_unregister(&dummy_hcd_driver); } -module_exit(cleanup); +module_exit(dummy_hcd_cleanup); --- lnx-517-rc8.orig/drivers/usb/gadget/legacy/inode.c +++ lnx-517-rc8/drivers/usb/gadget/legacy/inode.c @@ -2101,7 +2101,7 @@ MODULE_ALIAS_FS("gadgetfs"); /*----------------------------------------------------------------------*/ -static int __init init (void) +static int __init gadgetfs_init (void) { int status; @@ -2111,12 +2111,12 @@ static int __init init (void) shortname, driver_desc); return status; } -module_init (init); +module_init (gadgetfs_init); -static void __exit cleanup (void) +static void __exit gadgetfs_cleanup (void) { pr_debug ("unregister %s\n", shortname); unregister_filesystem (&gadgetfs_type); } -module_exit (cleanup); +module_exit (gadgetfs_cleanup);
Ira Weiny
2022-Mar-17 03:29 UTC
[PATCH 6/9] usb: gadget: eliminate anonymous module_init & module_exit
On Wed, Mar 16, 2022 at 12:20:07PM -0700, Randy Dunlap wrote:> Eliminate anonymous module_init() and module_exit(), which can lead to > confusion or ambiguity when reading System.map, crashes/oops/bugs, > or an initcall_debug log. > > Give each of these init and exit functions unique driver-specific > names to eliminate the anonymous names. > > Example 1: (System.map) > ffffffff832fc78c t init > ffffffff832fc79e t init > ffffffff832fc8f8 t init > > Example 2: (initcall_debug log) > calling init+0x0/0x12 @ 1 > initcall init+0x0/0x12 returned 0 after 15 usecs > calling init+0x0/0x60 @ 1 > initcall init+0x0/0x60 returned 0 after 2 usecs > calling init+0x0/0x9a @ 1 > initcall init+0x0/0x9a returned 0 after 74 usecs > > Fixes: bd25a14edb75 ("usb: gadget: legacy/serial: allow dynamic removal") > Fixes: 7bb5ea54be47 ("usb gadget serial: use composite gadget framework") > Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")I continue to be confused about the latest rules for the Fixes tag but this one in particular seems completely useless. This is the 'beginning of time' commit by Linus AFAICT. So do any of these Fixes tags need to be in this series? Regardless: Reviewed-by: Ira Weiny <ira.weiny at intel.com>> Signed-off-by: Randy Dunlap <rdunlap at infradead.org> > Cc: Felipe Balbi <felipe.balbi at linux.intel.com> > Cc: Micha? Miros?aw <mirq-linux at rere.qmqm.pl> > Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org> > Cc: Sebastian Andrzej Siewior <bigeasy at linutronix.de> > Cc: linux-usb at vger.kernel.org > --- > drivers/usb/gadget/legacy/inode.c | 8 ++++---- > drivers/usb/gadget/legacy/serial.c | 10 +++++----- > drivers/usb/gadget/udc/dummy_hcd.c | 8 ++++---- > 3 files changed, 13 insertions(+), 13 deletions(-) > > --- lnx-517-rc8.orig/drivers/usb/gadget/legacy/serial.c > +++ lnx-517-rc8/drivers/usb/gadget/legacy/serial.c > @@ -273,7 +273,7 @@ static struct usb_composite_driver gseri > static int switch_gserial_enable(bool do_enable) > { > if (!serial_config_driver.label) > - /* init() was not called, yet */ > + /* gserial_init() was not called, yet */ > return 0; > > if (do_enable) > @@ -283,7 +283,7 @@ static int switch_gserial_enable(bool do > return 0; > } > > -static int __init init(void) > +static int __init gserial_init(void) > { > /* We *could* export two configs; that'd be much cleaner... > * but neither of these product IDs was defined that way. > @@ -314,11 +314,11 @@ static int __init init(void) > > return usb_composite_probe(&gserial_driver); > } > -module_init(init); > +module_init(gserial_init); > > -static void __exit cleanup(void) > +static void __exit gserial_cleanup(void) > { > if (enable) > usb_composite_unregister(&gserial_driver); > } > -module_exit(cleanup); > +module_exit(gserial_cleanup); > --- lnx-517-rc8.orig/drivers/usb/gadget/udc/dummy_hcd.c > +++ lnx-517-rc8/drivers/usb/gadget/udc/dummy_hcd.c > @@ -2765,7 +2765,7 @@ static struct platform_driver dummy_hcd_ > static struct platform_device *the_udc_pdev[MAX_NUM_UDC]; > static struct platform_device *the_hcd_pdev[MAX_NUM_UDC]; > > -static int __init init(void) > +static int __init dummy_hcd_init(void) > { > int retval = -ENOMEM; > int i; > @@ -2887,9 +2887,9 @@ err_alloc_udc: > platform_device_put(the_hcd_pdev[i]); > return retval; > } > -module_init(init); > +module_init(dummy_hcd_init); > > -static void __exit cleanup(void) > +static void __exit dummy_hcd_cleanup(void) > { > int i; > > @@ -2905,4 +2905,4 @@ static void __exit cleanup(void) > platform_driver_unregister(&dummy_udc_driver); > platform_driver_unregister(&dummy_hcd_driver); > } > -module_exit(cleanup); > +module_exit(dummy_hcd_cleanup); > --- lnx-517-rc8.orig/drivers/usb/gadget/legacy/inode.c > +++ lnx-517-rc8/drivers/usb/gadget/legacy/inode.c > @@ -2101,7 +2101,7 @@ MODULE_ALIAS_FS("gadgetfs"); > > /*----------------------------------------------------------------------*/ > > -static int __init init (void) > +static int __init gadgetfs_init (void) > { > int status; > > @@ -2111,12 +2111,12 @@ static int __init init (void) > shortname, driver_desc); > return status; > } > -module_init (init); > +module_init (gadgetfs_init); > > -static void __exit cleanup (void) > +static void __exit gadgetfs_cleanup (void) > { > pr_debug ("unregister %s\n", shortname); > unregister_filesystem (&gadgetfs_type); > } > -module_exit (cleanup); > +module_exit (gadgetfs_cleanup); >