diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2009-01-06 19:20:56 +0300 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2009-01-06 19:20:56 +0300 |
commit | 5e7f3a46690f7f6c9f2781c700ab4370874aa0e8 (patch) | |
tree | be5a50962416bbbc323c24d997ceb3472e3d44b9 /drivers/ide/ide-proc.c | |
parent | a32296f93821497d794ab8e1312d677717479777 (diff) | |
download | linux-5e7f3a46690f7f6c9f2781c700ab4370874aa0e8.tar.xz |
ide: dynamic allocation of device structures
Allocate device structures dynamically instead of having them embedded
in ide_hwif_t:
* Remove needless zeroing of port structure from ide_init_port_data().
* Add ide_hwif_t.devices[MAX_DRIVES] (table of pointers to the devices).
* Add ide_port_{alloc,free}_devices() helpers and use them respectively
in ide_{host,free}_alloc().
* Convert all users of ->drives[] to use ->devices[] instead.
While at it:
* Use drive->dn for the slave device check in scc_pata.c.
As a nice side-effect this patch cuts ~1kB (x86-32) from the resulting
code size:
text data bss dec hex filename
53963 1244 237 55444 d894 drivers/ide/ide-core.o.before
52981 1244 237 54462 d4be drivers/ide/ide-core.o.after
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/ide-proc.c')
-rw-r--r-- | drivers/ide/ide-proc.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/ide/ide-proc.c b/drivers/ide/ide-proc.c index d985a9ec6bef..1dc827fa7061 100644 --- a/drivers/ide/ide-proc.c +++ b/drivers/ide/ide-proc.c @@ -599,7 +599,7 @@ void ide_proc_port_register_devices(ide_hwif_t *hwif) char name[64]; for (d = 0; d < MAX_DRIVES; d++) { - ide_drive_t *drive = &hwif->drives[d]; + ide_drive_t *drive = hwif->devices[d]; if ((drive->dev_flags & IDE_DFLAG_PRESENT) == 0 || drive->proc) continue; |