From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org
Cc: mcr@sandelman.ottawa.on.ca
Subject: [PATCH] device_shutdown can loop if the driver frees itself
Date: Fri, 13 Jan 2006 11:50:13 -0800 [thread overview]
Message-ID: <11371818132698@kroah.com> (raw)
In-Reply-To: <11371818131321@kroah.com>
[PATCH] device_shutdown can loop if the driver frees itself
This patch changes device_shutdown() to use the newly introduced safe
reverse list traversal. We experienced loops on system reboot if we had
removed and re-inserted our device from the device list.
We noticed this problem on PPC405. Our PCI IDE device comes and goes a lot.
Our hypothesis was that there was a loop caused by the driver->shutdown
freeing memory. It is possible that we do something wrong as well, but
being unable to reboot is kind of nasty.
Signed-off-by: Michael Richardson <mcr@marajade.sandelman.ca>
Cc: Patrick Mochel <mochel@digitalimplant.org>
Cc: David Howells <dhowells@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
commit 9c08a938ce5a3e1c9d5f764dc6ae844cb1af76ff
tree 9bd0a984b2e5466454e2633783786a516fe14484
parent 2d7b5a70e01ff8b1b054d8313362e454e3057c5a
author Michael Richardson <mcr@sandelman.ottawa.on.ca> Mon, 09 Jan 2006 01:04:51 -0800
committer Greg Kroah-Hartman <gregkh@suse.de> Fri, 13 Jan 2006 11:26:12 -0800
drivers/base/power/shutdown.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/base/power/shutdown.c b/drivers/base/power/shutdown.c
index a47bb74..c2475f3 100644
--- a/drivers/base/power/shutdown.c
+++ b/drivers/base/power/shutdown.c
@@ -35,10 +35,10 @@ extern int sysdev_shutdown(void);
*/
void device_shutdown(void)
{
- struct device * dev;
+ struct device * dev, *devn;
down_write(&devices_subsys.rwsem);
- list_for_each_entry_reverse(dev, &devices_subsys.kset.list,
+ list_for_each_entry_safe_reverse(dev, devn, &devices_subsys.kset.list,
kobj.entry) {
if (dev->bus && dev->bus->shutdown) {
dev_dbg(dev, "shutdown\n");
next prev parent reply other threads:[~2006-01-13 19:50 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-01-13 19:46 [GIT PATCH] More Driver Core patches for 2.6.15 Greg KH
2006-01-13 19:50 ` [PATCH] Add bus_type probe, remove, shutdown methods Greg KH
2006-01-13 19:50 ` [PATCH] Add pci_bus_type probe and remove methods Greg KH
2006-01-13 19:50 ` [PATCH] INPUT: add MODALIAS to the event environment Greg KH
2006-01-13 19:50 ` [PATCH] Add SA1111 bus_type probe/remove methods Greg KH
2006-01-13 19:50 ` [PATCH] Add locomo " Greg KH
2006-01-13 19:50 ` [PATCH] Add logic module " Greg KH
2006-01-13 19:50 ` [PATCH] Add tiocx " Greg KH
2006-01-13 19:50 ` [PATCH] Add ecard_bus_type probe/remove/shutdown methods Greg KH
2006-01-13 19:50 ` [PATCH] Add of_platform_bus_type probe and remove methods Greg KH
2006-01-13 19:50 ` [PATCH] Add ocp_bus_type " Greg KH
2006-01-13 19:50 ` [PATCH] Add parisc_bus_type " Greg KH
2006-01-13 19:50 ` [PATCH] Add sh_bus_type " Greg KH
2006-01-13 19:50 ` [PATCH] Add gameport bus_type " Greg KH
2006-01-13 19:50 ` [PATCH] Add vio_bus_type " Greg KH
2006-01-13 19:50 ` [PATCH] Add serio bus_type " Greg KH
2006-01-13 19:50 ` [PATCH] Add dio_bus_type " Greg KH
2006-01-13 19:50 ` [PATCH] Add i2c_bus_type " Greg KH
2006-01-13 19:50 ` [PATCH] Add pcmcia_bus_type " Greg KH
2006-01-13 19:50 ` [PATCH] Add MCP bus_type " Greg KH
2006-01-13 19:50 ` [PATCH] Add macio_bus_type " Greg KH
2006-01-13 19:50 ` [PATCH] Add mmc_bus_type " Greg KH
2006-01-13 19:50 ` [PATCH] Add pnp_bus_type " Greg KH
2006-01-13 19:50 ` [PATCH] Add usb_serial_bus_type " Greg KH
2006-01-13 19:50 ` [PATCH] Add ccwgroup_bus_type " Greg KH
2006-01-13 19:50 ` [PATCH] Add superhyway_bus_type " Greg KH
2006-01-13 19:50 ` [PATCH] Add ide_bus_type " Greg KH
2006-01-13 19:50 ` [PATCH] Add zorro_bus_type " Greg KH
2006-01-13 19:50 ` [PATCH] Add Pseudo LLD bus_type " Greg KH
2006-01-13 19:50 ` [PATCH] Add rio_bus_type " Greg KH
2006-01-13 19:50 ` [PATCH] platform-device-del typo fix Greg KH
2006-01-13 19:50 ` [PATCH] Add bttv sub bus_type probe and remove methods Greg KH
2006-01-13 19:50 ` [PATCH] Add {css,ccw}_bus_type probe, remove, shutdown methods Greg KH
2006-01-13 19:50 ` [PATCH] Remove usb gadget generic driver methods Greg KH
2006-01-13 19:50 ` Greg KH [this message]
2006-01-13 20:06 ` [PATCH] Add ide_bus_type probe and remove methods Bartlomiej Zolnierkiewicz
2006-01-14 19:57 ` Russell King
2006-01-14 20:32 ` Bartlomiej Zolnierkiewicz
2006-01-23 8:39 ` Bartlomiej Zolnierkiewicz
2006-01-14 5:14 ` [PATCH] INPUT: add MODALIAS to the event environment Alexander E. Patrakov
2006-01-14 11:04 ` Kay Sievers
2006-01-14 13:15 ` Alexander E. Patrakov
2006-01-14 13:21 ` Kay Sievers
2006-01-14 13:42 ` Alexander E. Patrakov
2006-01-14 14:11 ` Kay Sievers
2006-01-14 14:50 ` Alexander E. Patrakov
2006-01-23 6:00 ` Dmitry Torokhov
-- strict thread matches above, loose matches on Subject: below --
2006-01-04 20:31 [PATCH] device_shutdown can loop if the driver frees itself Michael Richardson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=11371818132698@kroah.com \
--to=gregkh@suse.de \
--cc=greg@kroah.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mcr@sandelman.ottawa.on.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).