From 5b4712e19768c07d995da575de7e9c6f271c243a Mon Sep 17 00:00:00 2001 From: Bartlomiej Zolnierkiewicz Date: Wed, 23 Jul 2008 19:55:58 +0200 Subject: [PATCH] --- yaml --- r: 105025 b: refs/heads/master c: 18de10170df31d34b342612f1c896a16a52f0a5c h: refs/heads/master i: 105023: 810b4c90f5d31b3f12bdfea9d1ed387b34eeb131 v: v3 --- [refs] | 2 +- trunk/drivers/ide/ide-probe.c | 10 ++++++---- trunk/drivers/ide/ide.c | 5 ----- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/[refs] b/[refs] index d0f7159496d9..bff7dd89eece 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: af1cbba37343c827e116638b097b94f5e6c38963 +refs/heads/master: 18de10170df31d34b342612f1c896a16a52f0a5c diff --git a/trunk/drivers/ide/ide-probe.c b/trunk/drivers/ide/ide-probe.c index 482f41f3f15e..6d57b7cd5424 100644 --- a/trunk/drivers/ide/ide-probe.c +++ b/trunk/drivers/ide/ide-probe.c @@ -39,8 +39,6 @@ #include #include -static ide_hwif_t ide_hwifs[MAX_HWIFS]; /* master data repository */ - /** * generic_id - add a generic drive id * @drive: drive to make an ID block for @@ -1583,15 +1581,18 @@ struct ide_host *ide_host_alloc_all(const struct ide_port_info *d, if (hws[i] == NULL) continue; + hwif = kzalloc(sizeof(*hwif), GFP_KERNEL); + if (hwif == NULL) + continue; + idx = ide_find_port_slot(d); if (idx < 0) { printk(KERN_ERR "%s: no free slot for interface\n", d ? d->name : "ide"); + kfree(hwif); continue; } - hwif = &ide_hwifs[idx]; - ide_init_port_data(hwif, idx); host->ports[i] = hwif; @@ -1755,6 +1756,7 @@ void ide_host_remove(struct ide_host *host) ide_unregister(hwif); ide_free_port_slot(hwif->index); + kfree(hwif); } kfree(host); diff --git a/trunk/drivers/ide/ide.c b/trunk/drivers/ide/ide.c index 60c5db1c59e5..914942a766db 100644 --- a/trunk/drivers/ide/ide.c +++ b/trunk/drivers/ide/ide.c @@ -233,11 +233,6 @@ void ide_unregister(ide_hwif_t *hwif) if (hwif->dma_base) ide_release_dma_engine(hwif); - spin_lock_irq(&ide_lock); - /* restore hwif data to pristine status */ - ide_init_port_data(hwif, hwif->index); - spin_unlock_irq(&ide_lock); - mutex_unlock(&ide_cfg_mtx); }