diff options
author | Ian Campbell <Ian.Campbell@citrix.com> | 2009-02-02 14:12:22 -0500 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2009-02-02 14:12:22 -0500 |
commit | 51d6ac7011cc354eade4f1282857947930a905aa (patch) | |
tree | c74c7ff2c3dfb2ca28498326b7ade3ad3a35abfc /drivers/ide | |
parent | 9a100f4b78c4c59fdd1cc38c5fa6a1ec66f23d9a (diff) |
IDE: Unregister and disable devices if initialization fails.
On reboot the loop in device_shutdown gets confused by these partially
initialized devices and goes into an infinite loop. Therefore unregister
and disable these devices.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
[bart: remove leftover hwif->present clearing + update patch description]
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide')
-rw-r--r-- | drivers/ide/ide-probe.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c index 6bab2ac1f5b9..ce0818a993f6 100644 --- a/drivers/ide/ide-probe.c +++ b/drivers/ide/ide-probe.c | |||
@@ -1549,7 +1549,8 @@ int ide_host_register(struct ide_host *host, const struct ide_port_info *d, | |||
1549 | if (hwif_init(hwif) == 0) { | 1549 | if (hwif_init(hwif) == 0) { |
1550 | printk(KERN_INFO "%s: failed to initialize IDE " | 1550 | printk(KERN_INFO "%s: failed to initialize IDE " |
1551 | "interface\n", hwif->name); | 1551 | "interface\n", hwif->name); |
1552 | hwif->present = 0; | 1552 | device_unregister(&hwif->gendev); |
1553 | ide_disable_port(hwif); | ||
1553 | continue; | 1554 | continue; |
1554 | } | 1555 | } |
1555 | 1556 | ||