diff mbox

spi: free children in spi_unregister_master, not siblings

Message ID 20100830215417.GC2413339@jupiter.n2.diac24.net (mailing list archive)
State Superseded, archived
Headers show

Commit Message

David Lamparter Aug. 30, 2010, 9:54 p.m. UTC
None
diff mbox

Patch

diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index b3a1f92..1a61fa8 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -546,11 +546,9 @@  done:
 EXPORT_SYMBOL_GPL(spi_register_master);
 
 
-static int __unregister(struct device *dev, void *master_dev)
+static int __unregister(struct device *dev, void *null)
 {
-	/* note: before about 2.6.14-rc1 this would corrupt memory: */
-	if (dev != master_dev)
-		spi_unregister_device(to_spi_device(dev));
+	spi_unregister_device(to_spi_device(dev));
 	return 0;
 }
 
@@ -568,8 +566,7 @@  void spi_unregister_master(struct spi_master *master)
 {
 	int dummy;
 
-	dummy = device_for_each_child(master->dev.parent, &master->dev,
-					__unregister);
+	dummy = device_for_each_child(&master->dev, NULL, __unregister);
 	device_unregister(&master->dev);
 }
 EXPORT_SYMBOL_GPL(spi_unregister_master);