From: Bartlomiej Zolnierkiewicz Date: Sat, 2 Feb 2008 18:56:41 +0000 (+0100) Subject: ide: factor out adding drive to hwgroup from init_irq() X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=0947e0dcd62c15c67dba71561624d87b2d0cf131;p=linux-beck.git ide: factor out adding drive to hwgroup from init_irq() Factor out adding drive to hwgroup from init_irq() to ide_add_drive_to_hwgroup(). There should be no functionality changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz --- diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c index e7067c20e338..4d940d1a80ed 100644 --- a/drivers/ide/ide-probe.c +++ b/drivers/ide/ide-probe.c @@ -911,6 +911,23 @@ static int ide_init_queue(ide_drive_t *drive) return 0; } +static void ide_add_drive_to_hwgroup(ide_drive_t *drive) +{ + ide_hwgroup_t *hwgroup = drive->hwif->hwgroup; + + spin_lock_irq(&ide_lock); + if (!hwgroup->drive) { + /* first drive for hwgroup. */ + drive->next = drive; + hwgroup->drive = drive; + hwgroup->hwif = HWIF(hwgroup->drive); + } else { + drive->next = hwgroup->drive->next; + hwgroup->drive->next = drive; + } + spin_unlock_irq(&ide_lock); +} + /* * This routine sets up the irq for an ide interface, and creates a new * hwgroup for the irq/hwif if none was previously assigned. @@ -1033,17 +1050,7 @@ static int init_irq (ide_hwif_t *hwif) printk(KERN_ERR "ide: failed to init %s\n",drive->name); continue; } - spin_lock_irq(&ide_lock); - if (!hwgroup->drive) { - /* first drive for hwgroup. */ - drive->next = drive; - hwgroup->drive = drive; - hwgroup->hwif = HWIF(hwgroup->drive); - } else { - drive->next = hwgroup->drive->next; - hwgroup->drive->next = drive; - } - spin_unlock_irq(&ide_lock); + ide_add_drive_to_hwgroup(drive); } #if !defined(__mc68000__) && !defined(CONFIG_APUS)