spi: of: do explicitly request modules for of-registered devices
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Wed, 25 Mar 2015 20:32:22 +0000 (13:32 -0700)
committerMark Brown <broonie@kernel.org>
Wed, 25 Mar 2015 21:34:52 +0000 (14:34 -0700)
Trying to register an SPI device asynchronously (via async_schedule() call)
results in an ugly complaint from request_module() warning about potential
deadlock (because request_module tries to wait for async works to
complete, the caller is also an async work in this case).

While we could try to switch to using request_module_nowait(), other buses,
as well as SPI itself when not using device tree, do not try to load
modules explicitly, but rather rely on the standard infrastructure (such as
udev) to execute module loading. There is no reason why SPI OF-described
devices should be treated differently.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi.c

index 4023cc98d808ecd7192e0a60b41cfaed0934227c..436ae1b6f6cc44984a7a801bb6797b690ab90738 100644 (file)
@@ -16,7 +16,6 @@
  */
 
 #include <linux/kernel.h>
-#include <linux/kmod.h>
 #include <linux/device.h>
 #include <linux/init.h>
 #include <linux/cache.h>
@@ -1359,7 +1358,6 @@ of_register_spi_device(struct spi_master *master, struct device_node *nc)
        spi->dev.of_node = nc;
 
        /* Register the new device */
-       request_module("%s%s", SPI_MODULE_PREFIX, spi->modalias);
        rc = spi_add_device(spi);
        if (rc) {
                dev_err(&master->dev, "spi_device register error %s\n",