[PATCH] spi: Fix modular master driver remove and devicesuspend/remove

From: stephen
Date: Mon Feb 06 2006 - 22:02:24 EST


From: Stephen Street <stephen@xxxxxxxxxxxxxxxxxxx>

Fix two problems in the spi subsystem:

1) spi subsystem core dumps when modular spi master is unloaded.
2) spi subsystem core dumps when spi slave device is suspended/resumed and
module slave driver is not loaded.

Signed-off-by: Stephen Street <stephen@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: David Brownell <dbrownell@xxxxxxxxxxxxxxxxxxxxx>
---

spi.c | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)

--- linux-2.6.16-rc2/drivers/spi/spi.c 2006-02-06 18:39:31.746537258 -0800
+++ linux-spi/drivers/spi/spi.c 2006-02-06 18:39:45.353334421 -0800
@@ -90,7 +90,7 @@ static int spi_suspend(struct device *de
int value;
struct spi_driver *drv = to_spi_driver(dev->driver);

- if (!drv->suspend)
+ if (!drv || !drv->suspend)
return 0;

/* suspend will stop irqs and dma; no more i/o */
@@ -105,7 +105,7 @@ static int spi_resume(struct device *dev
int value;
struct spi_driver *drv = to_spi_driver(dev->driver);

- if (!drv->resume)
+ if (!drv || !drv->resume)
return 0;

/* resume may restart the i/o queue */
@@ -449,7 +449,6 @@ void spi_unregister_master(struct spi_ma
{
(void) device_for_each_child(master->cdev.dev, NULL, __unregister);
class_device_unregister(&master->cdev);
- master->cdev.dev = NULL;
}
EXPORT_SYMBOL_GPL(spi_unregister_master);

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/