Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

spi: Add THIS_MODULE to spi_driver in SPI core

Add spi_register_driver helper macro that adds THIS_MODULE to
spi_driver for the registering driver. We rename and modify
the existing spi_register_driver to enable this.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Andrew F. Davis and committed by
Mark Brown
ca5d2485 6ff33f39

+9 -4
+4 -3
drivers/spi/spi.c
··· 305 305 } 306 306 307 307 /** 308 - * spi_register_driver - register a SPI driver 308 + * __spi_register_driver - register a SPI driver 309 309 * @sdrv: the driver to register 310 310 * Context: can sleep 311 311 */ 312 - int spi_register_driver(struct spi_driver *sdrv) 312 + int __spi_register_driver(struct module *owner, struct spi_driver *sdrv) 313 313 { 314 + sdrv->driver.owner = owner; 314 315 sdrv->driver.bus = &spi_bus_type; 315 316 if (sdrv->probe) 316 317 sdrv->driver.probe = spi_drv_probe; ··· 321 320 sdrv->driver.shutdown = spi_drv_shutdown; 322 321 return driver_register(&sdrv->driver); 323 322 } 324 - EXPORT_SYMBOL_GPL(spi_register_driver); 323 + EXPORT_SYMBOL_GPL(__spi_register_driver); 325 324 326 325 /*-------------------------------------------------------------------------*/ 327 326
+5 -1
include/linux/spi/spi.h
··· 250 250 return drv ? container_of(drv, struct spi_driver, driver) : NULL; 251 251 } 252 252 253 - extern int spi_register_driver(struct spi_driver *sdrv); 253 + extern int __spi_register_driver(struct module *owner, struct spi_driver *sdrv); 254 254 255 255 /** 256 256 * spi_unregister_driver - reverse effect of spi_register_driver ··· 262 262 if (sdrv) 263 263 driver_unregister(&sdrv->driver); 264 264 } 265 + 266 + /* use a define to avoid include chaining to get THIS_MODULE */ 267 + #define spi_register_driver(driver) \ 268 + __spi_register_driver(THIS_MODULE, driver) 265 269 266 270 /** 267 271 * module_spi_driver() - Helper macro for registering a SPI driver