Here's an updated change set.
Thanks,
P.
Signed-off-by: Prarit Bhargava <[EMAIL PROTECTED]>
===== ide-probe.c 1.90 vs edited =====
--- 1.90/drivers/ide/ide-probe.c 2004-12-10 14:12:14 -05:00
+++ edited/ide-probe.c 2005-02-08 10:41:46 -05:00
@@ -841,7 +841,10 @@
if (fixup)
fixup(hwif);
- hwif_init(hwif);
+ if (hwif_init(hwif) < 0) {
+ printk("%s: Failed to initialize IDE interface\n", hwif->name);
+ return -1;
+ }
if (hwif->present) {
u16 unit = 0;
@@ -1245,20 +1248,22 @@
int old_irq, unit;
if (!hwif->present)
- return 0;
+ return -ENODEV;
if (!hwif->irq) {
if (!(hwif->irq =
ide_default_irq(hwif->io_ports[IDE_DATA_OFFSET])))
{
printk("%s: DISABLED, NO IRQ\n", hwif->name);
- return (hwif->present = 0);
+ hwif->present = 0;
+ return -EIO;
}
}
#ifdef CONFIG_BLK_DEV_HD
if (hwif->irq == HD_IRQ && hwif->io_ports[IDE_DATA_OFFSET] != HD_DATA) {
printk("%s: CANNOT SHARE IRQ WITH OLD "
"HARDDISK DRIVER (hd.c)\n", hwif->name);
- return (hwif->present = 0);
+ hwif->present = 0;
+ return -EIO;
}
#endif /* CONFIG_BLK_DEV_HD */
@@ -1266,7 +1271,7 @@
hwif->present = 0;
if (register_blkdev(hwif->major, hwif->name))
- return 0;
+ return -EIO;
if (!hwif->sg_max_nents)
hwif->sg_max_nents = PRD_ENTRIES;
@@ -1305,7 +1310,7 @@
done:
init_gendisk(hwif);
hwif->present = 1; /* success */
- return 1;
+ return 0;
out_disks:
for (unit = 0; unit < MAX_DRIVES; unit++) {
@@ -1315,7 +1320,7 @@
}
out:
unregister_blkdev(hwif->major, hwif->name);
- return 0;
+ return -EIO;
}
int ideprobe_init (void)
