Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

usb: usbip: 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: 80fd9cd52de6 ("usbip: vudc: Add VUDC main file")
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Cc: Krzysztof Opasiak <k.opasiak@samsung.com>
Cc: Igor Kotrasinski <i.kotrasinsk@samsung.com>
Cc: Valentina Manea <valentina.manea.m@gmail.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Shuah Khan <skhan@linuxfoundation.org>
Cc: linux-usb@vger.kernel.org
Link: https://lore.kernel.org/r/20220316192010.19001-8-rdunlap@infradead.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Randy Dunlap and committed by
Greg Kroah-Hartman
393dcd1f aff477cb

+4 -4
+4 -4
drivers/usb/usbip/vudc_main.c
··· 28 28 29 29 static LIST_HEAD(vudc_devices); 30 30 31 - static int __init init(void) 31 + static int __init vudc_init(void) 32 32 { 33 33 int retval = -ENOMEM; 34 34 int i; ··· 86 86 out: 87 87 return retval; 88 88 } 89 - module_init(init); 89 + module_init(vudc_init); 90 90 91 - static void __exit cleanup(void) 91 + static void __exit vudc_cleanup(void) 92 92 { 93 93 struct vudc_device *udc_dev = NULL, *udc_dev2 = NULL; 94 94 ··· 103 103 } 104 104 platform_driver_unregister(&vudc_driver); 105 105 } 106 - module_exit(cleanup); 106 + module_exit(vudc_cleanup); 107 107 108 108 MODULE_DESCRIPTION("USB over IP Device Controller"); 109 109 MODULE_AUTHOR("Krzysztof Opasiak, Karol Kosik, Igor Kotrasinski");