Skip to content

Commit 9447057

Browse files
Libo Chengregkh
authored andcommitted
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 <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent f494513 commit 9447057

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

drivers/base/platform.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -523,11 +523,13 @@ static void platform_drv_shutdown(struct device *_dev)
523523
}
524524

525525
/**
526-
* platform_driver_register - register a driver for platform-level devices
526+
* __platform_driver_register - register a driver for platform-level devices
527527
* @drv: platform driver structure
528528
*/
529-
int platform_driver_register(struct platform_driver *drv)
529+
int __platform_driver_register(struct platform_driver *drv,
530+
struct module *owner)
530531
{
532+
drv->driver.owner = owner;
531533
drv->driver.bus = &platform_bus_type;
532534
if (drv->probe)
533535
drv->driver.probe = platform_drv_probe;
@@ -538,7 +540,7 @@ int platform_driver_register(struct platform_driver *drv)
538540

539541
return driver_register(&drv->driver);
540542
}
541-
EXPORT_SYMBOL_GPL(platform_driver_register);
543+
EXPORT_SYMBOL_GPL(__platform_driver_register);
542544

543545
/**
544546
* platform_driver_unregister - unregister a driver for platform-level devices

include/linux/platform_device.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,13 @@ struct platform_driver {
180180
const struct platform_device_id *id_table;
181181
};
182182

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 *);
184190
extern void platform_driver_unregister(struct platform_driver *);
185191

186192
/* non-hotpluggable platform devices may use this so that probe() and

0 commit comments

Comments
 (0)