[PATCH] 2.5.11 IDE 46
authorMartin Dalecki <dalecki@evision-ventures.com>
Tue, 30 Apr 2002 06:57:32 +0000 (23:57 -0700)
committerLinus Torvalds <torvalds@home.transmeta.com>
Tue, 30 Apr 2002 06:57:32 +0000 (23:57 -0700)
commit4a58bd1a7d1264dd2c6e40cf5a16c64d9dfba2d3
tree0b70fad9f83bc03bb83574fd66ebd3e38bee55ec
parentb960fa03cf2bd5ccd37ebe5cc4d0b46d69e4519a
[PATCH] 2.5.11 IDE 46

- Remove the specific CONFIG_IDEDMA_PCI_WIP in favor of using the generic
   CONFIG_EXPERIMENTAL tag. (Pointed out by Vojtech Pavlik).

- Change the signature of the IRQ handler to take the request directly as a
   parameter. This doesn't blow the code up but makes it much more obvious and
   finally it's reducing the number of side effects of the hwgroup->rq field.

- A second sharp look after the above change allowed us to remove the wrq field
   from the hwgroup struct. It's just not used at all.

- Change the signature of the end_request member of struct ata_operations to
   take the request as a second argument. Similar for __ide_end_request()
   and ide_end_request().

- Remove BUG_ON() items just before ide_set_handler(). The check in
   ide_set_handler is clever enough now.

- Remove the rq subfield from ide-scsi packet structure. We have now the
   request context always in place. Same for floppy.

- Let the timer expiry function take the request as a direct argument.

Yes I know those changes are extensive. But they are a necessary step
in between for the following purposes:

- Consolidate the whole ATA/ATAPI stuff on passing a single unified request
   handling object. Because after eliminating those side effects it's far easier
   to see what's passed where.

- Minimizing the amount of side effects in the overall code. That's a good
   thing anyway and it *doesn't* cost us neither performance nor space, since
   the stack depths are small anyway here.

- Minimizing the usage of hwgroup - which should go away if possible.
49 files changed:
arch/alpha/defconfig
arch/arm/def-configs/footbridge
arch/arm/def-configs/iq80310
arch/cris/drivers/ide.c
arch/i386/defconfig
arch/ia64/defconfig
arch/ia64/sn/configs/sn1/defconfig-bigsur-mp
arch/ia64/sn/configs/sn1/defconfig-bigsur-sp
arch/mips/defconfig-ddb5476
arch/mips/defconfig-it8172
arch/ppc/configs/common_defconfig
arch/ppc/configs/k2_defconfig
arch/ppc/configs/menf1_defconfig
arch/ppc/configs/mvme5100_defconfig
arch/ppc/configs/pmac_defconfig
arch/ppc/configs/pplus_defconfig
arch/ppc/configs/sandpoint_defconfig
arch/ppc/defconfig
arch/sparc64/defconfig
arch/x86_64/defconfig
drivers/ide/Config.help
drivers/ide/Config.in
drivers/ide/aec62xx.c
drivers/ide/alim15x3.c
drivers/ide/amd74xx.c
drivers/ide/cmd64x.c
drivers/ide/cs5530.c
drivers/ide/cy82c693.c
drivers/ide/hpt34x.c
drivers/ide/hpt366.c
drivers/ide/icside.c
drivers/ide/ide-cd.c
drivers/ide/ide-disk.c
drivers/ide/ide-dma.c
drivers/ide/ide-floppy.c
drivers/ide/ide-pmac.c
drivers/ide/ide-tape.c
drivers/ide/ide-taskfile.c
drivers/ide/ide.c
drivers/ide/ns87415.c
drivers/ide/pdc202xx.c
drivers/ide/pdc4030.c
drivers/ide/piix.c
drivers/ide/serverworks.c
drivers/ide/sis5513.c
drivers/ide/trm290.c
drivers/ide/via82cxxx.c
drivers/scsi/ide-scsi.c
include/linux/ide.h