Bartlomiej pointed out that the sgiioc4.c changes have made their way into Linus' tree.

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)

Reply via email to