mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* [PATCH 1/3] driver: fix device remove order
@ 2015-03-17  6:25 Sascha Hauer
  2015-03-17  6:25 ` [PATCH 2/3] driver: Call remove function only when available Sascha Hauer
  2015-03-17  6:25 ` [PATCH 3/3] driver: Call bus->remove instead of driver->remove Sascha Hauer
  0 siblings, 2 replies; 6+ messages in thread
From: Sascha Hauer @ 2015-03-17  6:25 UTC (permalink / raw)
  To: Barebox List

The active list is supposed to collect active devices in the
opposite order they are probed. This is used to remove the
devices in the correct order in devices_shutdown. The order
is wrong though when in a drivers probe function other devices
are registered. To get the order right we have to add the new
device to the active list before it is probed.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 drivers/base/driver.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/base/driver.c b/drivers/base/driver.c
index 3363b56..453966b 100644
--- a/drivers/base/driver.c
+++ b/drivers/base/driver.c
@@ -85,14 +85,15 @@ int device_probe(struct device_d *dev)
 
 	pinctrl_select_state_default(dev);
 
+	list_add(&dev->active, &active);
+
 	ret = dev->bus->probe(dev);
 	if (ret) {
+		list_del(&dev->active);
 		dev_err(dev, "probe failed: %s\n", strerror(-ret));
 		return ret;
 	}
 
-	list_add(&dev->active, &active);
-
 	return 0;
 }
 
-- 
2.1.4


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-05-05 11:47 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-17  6:25 [PATCH 1/3] driver: fix device remove order Sascha Hauer
2015-03-17  6:25 ` [PATCH 2/3] driver: Call remove function only when available Sascha Hauer
2015-03-17  6:25 ` [PATCH 3/3] driver: Call bus->remove instead of driver->remove Sascha Hauer
2015-05-02 16:50   ` Regression on next (Re: [PATCH 3/3] driver: Call bus->remove instead of driver->remove) Ezequiel Garcia
2015-05-04  6:29     ` Sascha Hauer
2015-05-05 11:44       ` Ezequiel Garcia

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox