• Vaishali Thakkar's avatar
    w1: Use module_pci_driver · e7390d7c
    Vaishali Thakkar authored
    Use module_pci_driver for drivers whose init and exit functions
    only register and unregister, respectively.
    
    A simplified version of the Coccinelle semantic patch that performs
    this transformation is as follows:
    
    @A@
    identifier f, x;
    @@
    -static f(...) { return pci_register_driver(&x); }
    
    @b depends on a@
    identifier e, a.x;
    @@
    -static e(...) { pci_unregister_driver(&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_pci_driver;
    @@
    -module_exit(e);
    +module_pci_driver(x);
    Signed-off-by: default avatarVaishali Thakkar <vthakkar1994@gmail.com>
    Acked-by: default avatarEvgeniy Polyakov <zbr@ioremap.net>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    e7390d7c
matrox_w1.c 5.63 KB