• V
    neterion: s2io: Use module_pci_driver · 910be1ab
    Vaishali Thakkar 提交于
    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;
    statement S;
    @@
    -static e(...) {
    -pci_unregister_driver(&x);
    -DBG_PRINT(INIT_DBG,"S");
    - }
    
    @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: NVaishali Thakkar <vthakkar1994@gmail.com>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    910be1ab
s2io.c 239.7 KB