Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=48535651f6a993924115768aa7256c371bf818e6
Commit:     48535651f6a993924115768aa7256c371bf818e6
Parent:     c860a8f2d29b7da84fb3aed7b097f53c2c225fd6
Author:     Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
AuthorDate: Fri Feb 1 23:09:34 2008 +0100
Committer:  Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
CommitDate: Fri Feb 1 23:09:34 2008 +0100

    ide: remove hwif->present manipulations from hwif_init()
    
    * Call hwif_init() only if hwif->present is set.
    
    * If hwif_init() fails clear hwif->present.
    
    * Remove hwif->present manipulations from hwif_init().
    
    Signed-off-by: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
---
 drivers/ide/ide-probe.c |   18 ++++++------------
 1 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c
index b812b98..00b2b07 100644
--- a/drivers/ide/ide-probe.c
+++ b/drivers/ide/ide-probe.c
@@ -1245,28 +1245,21 @@ static int hwif_init(ide_hwif_t *hwif)
 {
        int old_irq;
 
-       /* Return success if no device is connected */
-       if (!hwif->present)
-               return 1;
-
        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);
+                       return 0;
                }
        }
 #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);
+               return 0;
        }
 #endif /* CONFIG_BLK_DEV_HD */
 
-       /* we set it back to 1 if all is ok below */    
-       hwif->present = 0;
-
        if (register_blkdev(hwif->major, hwif->name))
                return 0;
 
@@ -1305,10 +1298,7 @@ static int hwif_init(ide_hwif_t *hwif)
 
 done:
        init_gendisk(hwif);
-
        ide_acpi_init(hwif);
-
-       hwif->present = 1;      /* success */
        return 1;
 
 out:
@@ -1352,9 +1342,13 @@ int ide_device_add_all(u8 *idx)
 
                hwif = &ide_hwifs[idx[i]];
 
+               if (!hwif->present)
+                       continue;
+
                if (hwif_init(hwif) == 0) {
                        printk(KERN_INFO "%s: failed to initialize IDE "
                                         "interface\n", hwif->name);
+                       hwif->present = 0;
                        rc = -1;
                        continue;
                }
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to