From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
To: linux-ide@vger.kernel.org
Cc: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>,
linux-kernel@vger.kernel.org
Subject: [PATCH 6/7] ide: allocate ide_hwif_t instances dynamically
Date: Sat, 28 Jun 2008 23:44:38 +0200 [thread overview]
Message-ID: <20080628214438.21345.13127.sendpatchset@localhost.localdomain> (raw)
In-Reply-To: <20080628214355.21345.94835.sendpatchset@localhost.localdomain>
* Allocate ide_hwif_t instances dynamically and remove ide_hwifs[].
This cuts almost ~14kB from ide-probe.o (x86-32, MAX_HWIFS == 10):
text data bss dec hex filename
9140 40 14084 23264 5ae0 drivers/ide/ide-probe.o.before
9169 40 44 9253 2425 drivers/ide/ide-probe.o.after
* Remove no longer needed ide_init_port_data() call from ide_unregister().
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
---
drivers/ide/ide-probe.c | 10 ++++++----
drivers/ide/ide.c | 4 ----
2 files changed, 6 insertions(+), 8 deletions(-)
Index: b/drivers/ide/ide-probe.c
===================================================================
--- a/drivers/ide/ide-probe.c
+++ b/drivers/ide/ide-probe.c
@@ -39,8 +39,6 @@
#include <asm/uaccess.h>
#include <asm/io.h>
-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
@@ -1589,15 +1587,18 @@ struct ide_host *ide_host_alloc_all(cons
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, i);
host->ports[i] = hwif;
@@ -1761,6 +1762,7 @@ void ide_host_remove(struct ide_host *ho
ide_unregister(hwif);
ide_free_port_slot(hwif->index);
+ kfree(hwif);
}
kfree(host);
Index: b/drivers/ide/ide.c
===================================================================
--- a/drivers/ide/ide.c
+++ b/drivers/ide/ide.c
@@ -232,10 +232,6 @@ void ide_unregister(ide_hwif_t *hwif)
if (hwif->dma_base)
ide_release_dma_engine(hwif);
-
- /* restore hwif data to pristine status */
- ide_init_port_data(hwif, hwif->index);
-
abort:
spin_unlock_irq(&ide_lock);
mutex_unlock(&ide_cfg_mtx);
next prev parent reply other threads:[~2008-06-28 21:42 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-28 21:43 [PATCH 1/7] ide: add ide_host_add() helper Bartlomiej Zolnierkiewicz
2008-06-28 21:44 ` [PATCH 2/7] ide: fix ide_host_register() return value Bartlomiej Zolnierkiewicz
2008-06-28 21:44 ` [PATCH 3/7] ide: fix IDE port slots reservation and freeing Bartlomiej Zolnierkiewicz
2008-06-28 21:44 ` [PATCH 4/7] ide: move ide_remove_port_from_hwgroup() to ide-probe.c Bartlomiej Zolnierkiewicz
2008-06-28 21:44 ` [PATCH 5/7] ide: add ide_ports[] Bartlomiej Zolnierkiewicz
2008-06-28 21:44 ` Bartlomiej Zolnierkiewicz [this message]
2008-06-28 21:44 ` [PATCH 7/7] ide: add ide_host_free() helper Bartlomiej Zolnierkiewicz
2008-08-21 18:02 ` [PATCH 1/7] ide: add ide_host_add() helper Sergei Shtylyov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080628214438.21345.13127.sendpatchset@localhost.localdomain \
--to=bzolnier@gmail.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.