On Wed, Feb 17, 2016 at 05:43:27PM +0530, Amitoj Kaur Chawla wrote:
Macro module_usb_driver is used for drivers whose init and exit paths only register and unregister to usb API. So remove boilerplate code to make code simpler by using module_usb_driver.
This change was made with the help of the following Coccinelle semantic patch:
//<smpl> @a@ identifier f, x; @@ -static f(...) { return usb_register(&x); }
@b depends on a@ identifier e, a.x; @@ -static e(...) { usb_deregister(&x); }
@c depends on a && b@ identifier a.f; declarer name module_init; @@ -module_init(f);
@d depends on a && b && c@ identifier b.e, a.x; declarer name module_exit; declarer name module_usb_driver; @@ -module_exit(e); +module_usb_driver(x); //</smpl>
Signed-off-by: Amitoj Kaur Chawla amitoj1606@gmail.com
Applied to drm-misc, thanks. -Daniel
drivers/gpu/drm/udl/udl_drv.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-)
diff --git a/drivers/gpu/drm/udl/udl_drv.c b/drivers/gpu/drm/udl/udl_drv.c index d5728ec..772ec9e 100644 --- a/drivers/gpu/drm/udl/udl_drv.c +++ b/drivers/gpu/drm/udl/udl_drv.c @@ -125,17 +125,5 @@ static struct usb_driver udl_driver = { .disconnect = udl_usb_disconnect, .id_table = id_table, };
-static int __init udl_init(void) -{
- return usb_register(&udl_driver);
-}
-static void __exit udl_exit(void) -{
- usb_deregister(&udl_driver);
-}
-module_init(udl_init); -module_exit(udl_exit); +module_usb_driver(udl_driver); MODULE_LICENSE("GPL"); -- 1.9.1
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel