Commit 9447057eaff871dd7c63c808de761b8732407169

Authored by Libo Chen
Committed by Greg Kroah-Hartman
1 parent f494513ff1

platform_device: use a macro instead of platform_driver_register

I found a lot of mistakes using struct platform_driver without owner
so I make a macro instead of the function platform_driver_register.
It can set owner in it, then guys don`t care about module owner again.

Signed-off-by: Libo Chen <libo.chen@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Showing 2 changed files with 12 additions and 4 deletions Side-by-side Diff

drivers/base/platform.c
... ... @@ -523,11 +523,13 @@
523 523 }
524 524  
525 525 /**
526   - * platform_driver_register - register a driver for platform-level devices
  526 + * __platform_driver_register - register a driver for platform-level devices
527 527 * @drv: platform driver structure
528 528 */
529   -int platform_driver_register(struct platform_driver *drv)
  529 +int __platform_driver_register(struct platform_driver *drv,
  530 + struct module *owner)
530 531 {
  532 + drv->driver.owner = owner;
531 533 drv->driver.bus = &platform_bus_type;
532 534 if (drv->probe)
533 535 drv->driver.probe = platform_drv_probe;
... ... @@ -538,7 +540,7 @@
538 540  
539 541 return driver_register(&drv->driver);
540 542 }
541   -EXPORT_SYMBOL_GPL(platform_driver_register);
  543 +EXPORT_SYMBOL_GPL(__platform_driver_register);
542 544  
543 545 /**
544 546 * platform_driver_unregister - unregister a driver for platform-level devices
include/linux/platform_device.h
... ... @@ -180,7 +180,13 @@
180 180 const struct platform_device_id *id_table;
181 181 };
182 182  
183   -extern int platform_driver_register(struct platform_driver *);
  183 +/*
  184 + * use a macro to avoid include chaining to get THIS_MODULE
  185 + */
  186 +#define platform_driver_register(drv) \
  187 + __platform_driver_register(drv, THIS_MODULE)
  188 +extern int __platform_driver_register(struct platform_driver *,
  189 + struct module *);
184 190 extern void platform_driver_unregister(struct platform_driver *);
185 191  
186 192 /* non-hotpluggable platform devices may use this so that probe() and