From 6e13ed6e1f05401791feb7a688f32bd69ec35480 Mon Sep 17 00:00:00 2001 From: Bartlomiej Zolnierkiewicz Date: Fri, 1 Feb 2008 23:09:36 +0100 Subject: [PATCH] --- yaml --- r: 82161 b: refs/heads/master c: fbd130887a45341259cde02e134581fb3dac6e14 h: refs/heads/master i: 82159: 746f06e1a584bb4f91aaf9f8b6cda2e2a9a7e55c v: v3 --- [refs] | 2 +- trunk/drivers/ide/ide-probe.c | 18 +----------------- trunk/drivers/ide/ide.c | 2 +- trunk/include/linux/ide.h | 1 + 4 files changed, 4 insertions(+), 19 deletions(-) diff --git a/[refs] b/[refs] index d99ea37a3662..d8e44c302a70 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: cae5c82022cd710ff1eedd39ca8c56b081177b18 +refs/heads/master: fbd130887a45341259cde02e134581fb3dac6e14 diff --git a/trunk/drivers/ide/ide-probe.c b/trunk/drivers/ide/ide-probe.c index 88c77d63c01f..3acb1b692f8c 100644 --- a/trunk/drivers/ide/ide-probe.c +++ b/trunk/drivers/ide/ide-probe.c @@ -1074,23 +1074,7 @@ static int init_irq (ide_hwif_t *hwif) mutex_unlock(&ide_cfg_mtx); return 0; out_unlink: - spin_lock_irq(&ide_lock); - if (hwif->next == hwif) { - BUG_ON(hwgroup->hwif != hwif); - kfree(hwgroup); - } else { - ide_hwif_t *g; - g = hwgroup->hwif; - while (g->next != hwif) - g = g->next; - g->next = hwif->next; - if (hwgroup->hwif == hwif) { - BUG_ON(hwgroup->drive); - hwgroup->hwif = g; - } - BUG_ON(hwgroup->hwif == hwif); - } - spin_unlock_irq(&ide_lock); + ide_remove_port_from_hwgroup(hwif); out_up: mutex_unlock(&ide_cfg_mtx); return 1; diff --git a/trunk/drivers/ide/ide.c b/trunk/drivers/ide/ide.c index 1a3c89471175..ab9ca2b5b66c 100644 --- a/trunk/drivers/ide/ide.c +++ b/trunk/drivers/ide/ide.c @@ -461,7 +461,7 @@ static void ide_hwif_restore(ide_hwif_t *hwif, ide_hwif_t *tmp_hwif) hwif->hwif_data = tmp_hwif->hwif_data; } -static void ide_remove_port_from_hwgroup(ide_hwif_t *hwif) +void ide_remove_port_from_hwgroup(ide_hwif_t *hwif) { ide_hwgroup_t *hwgroup = hwif->hwgroup; diff --git a/trunk/include/linux/ide.h b/trunk/include/linux/ide.h index 4d8c12cc55ea..ec10b2a3bb6e 100644 --- a/trunk/include/linux/ide.h +++ b/trunk/include/linux/ide.h @@ -1191,6 +1191,7 @@ static inline void ide_acpi_init(ide_hwif_t *hwif) { ; } static inline void ide_acpi_set_state(ide_hwif_t *hwif, int on) {} #endif +void ide_remove_port_from_hwgroup(ide_hwif_t *); extern int ide_hwif_request_regions(ide_hwif_t *hwif); extern void ide_hwif_release_regions(ide_hwif_t* hwif); extern void ide_unregister (unsigned int index);