James Bottomley
dde2020754
libata: eliminate the home grown dma padding in favour of
...
that provided by the block layer
ATA requires that all DMA transfers begin and end on word boundaries.
Because of this, a large amount of machinery grew up in ide to adjust
scatterlists on this basis. However, as of 2.5, the block layer has a
dma_alignment variable which ensures both the beginning and length of a
DMA transfer are aligned on the dma_alignment boundary. Although the
block layer does adjust the beginning of the transfer to ensure this
happens, it doesn't actually adjust the length, it merely makes sure
that space is allocated for transfers beyond the declared length. The
upshot of this is that scatterlists may be padded to any size between
the actual length and the length adjusted to the dma_alignment safely
knowing that memory is allocated in this region.
Right at the moment, SCSI takes the default dma_aligment which is on a
512 byte boundary. Note that this aligment only applies to transfers
coming in from user space. However, since all kernel allocations are
automatically aligned on a minimum of 32 byte boundaries, it is safe to
adjust them in this manner as well.
tj: * Adjusting sg after padding is done in block layer. Make libata
set queue alignment correctly for ATAPI devices and drop broken
sg mangling from ata_sg_setup().
* Use request->raw_data_len for ATAPI transfer chunk size.
* Killed qc->raw_nbytes.
* Separated out killing qc->n_iter.
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2008-02-19 11:36:56 +01:00
..
ahci.c
libata: eliminate the home grown dma padding in favour of
2008-02-19 11:36:56 +01:00
ata_generic.c
ata_generic: Cenatek support
2008-01-23 05:24:17 -05:00
ata_piix.c
ata: fix sparse warning in ata_piix.c
2008-02-15 13:50:58 -05:00
Kconfig
sata_mv: Remove PCI dependency
2008-02-01 12:26:37 -05:00
libata-acpi.c
libata: reimplement ata_acpi_cbl_80wire() using ata_acpi_gtm_xfermask()
2008-01-23 05:24:12 -05:00
libata-core.c
libata: eliminate the home grown dma padding in favour of
2008-02-19 11:36:56 +01:00
libata-eh.c
libata: fix off-by-one in error categorization
2008-01-23 05:24:17 -05:00
libata-pmp.c
libata-pmp: 4726 hates SRST
2008-01-10 16:53:12 -05:00
libata-scsi.c
libata: eliminate the home grown dma padding in favour of
2008-02-19 11:36:56 +01:00
libata-sff.c
libata: factor out ata_pci_activate_sff_host() from ata_pci_one()
2008-01-23 05:24:16 -05:00
libata.h
libata: move ata_set_mode() to libata-eh.c
2008-01-23 05:24:10 -05:00
Makefile
Merge branch 'linux-2.6'
2008-01-31 11:25:51 +11:00
pata_acpi.c
ata: fix sparse warning in pata_acpi.c
2008-02-15 13:51:33 -05:00
pata_ali.c
libata: checkpatch fixes
2008-01-23 05:24:10 -05:00
pata_amd.c
ata: sparse fixes for pata_amd.c
2008-02-15 13:51:24 -05:00
pata_artop.c
libata: Switch most of the remaining SFF drivers to ata_sff_port_start
2007-10-12 14:55:36 -04:00
pata_at32.c
drivers/ata/: Spelling fixes
2008-02-03 17:08:11 +02:00
pata_atiixp.c
pata_atiixp: Audit notes on locking
2007-10-12 14:55:42 -04:00
pata_bf54x.c
Blackfin pata-bf54x driver: fix compiling bug - no ata_port struct in struct ata_device any more
2008-02-01 12:26:43 -05:00
pata_cmd64x.c
pata_cmd64x.c typo fix
2007-10-20 01:02:48 +02:00
pata_cmd640.c
libata: Switch most of the remaining SFF drivers to ata_sff_port_start
2007-10-12 14:55:36 -04:00
pata_cs5520.c
PCI: Remove users of pci_enable_device_bars()
2008-02-01 15:04:27 -08:00
pata_cs5530.c
Fix misspellings of "system", "controller", "interrupt" and "necessary".
2007-10-19 23:10:43 +02:00
pata_cs5535.c
Fix misspellings of "system", "controller", "interrupt" and "necessary".
2007-10-19 23:10:43 +02:00
pata_cs5536.c
ata: fix sparse warning in pata_cs5536.c
2008-02-15 13:51:27 -05:00
pata_cypress.c
libata: Switch most of the remaining SFF drivers to ata_sff_port_start
2007-10-12 14:55:36 -04:00
pata_efar.c
drivers/ata/: Spelling fixes
2008-02-03 17:08:11 +02:00
pata_hpt3x2n.c
libata: Switch most of the remaining SFF drivers to ata_sff_port_start
2007-10-12 14:55:36 -04:00
pata_hpt3x3.c
libata: implement and use ata_port_desc() to report port configuration
2007-10-12 14:55:37 -04:00
pata_hpt37x.c
pata_hpt37x: checkpatch fixes
2008-01-23 05:24:13 -05:00
pata_hpt366.c
libata: Switch most of the remaining SFF drivers to ata_sff_port_start
2007-10-12 14:55:36 -04:00
pata_icside.c
libata: eliminate the home grown dma padding in favour of
2008-02-19 11:36:56 +01:00
pata_isapnp.c
pata_isapnp: Polled devices
2007-11-23 19:33:27 -05:00
pata_it821x.c
libata/pata_it821x: Improve handling of poorly compatible emulations
2008-01-23 05:24:15 -05:00
pata_it8213.c
drivers/ata/: Spelling fixes
2008-02-03 17:08:11 +02:00
pata_ixp4xx_cf.c
libata: update ->data_xfer hook for ATAPI
2008-01-23 05:24:14 -05:00
pata_jmicron.c
ata: fix sparse warning in pata_jmicron.c
2008-02-15 13:51:29 -05:00
pata_legacy.c
pata_legacy: don't call ata_host_detach() after initialization failure
2008-02-15 13:51:12 -05:00
pata_marvell.c
ata: fix sparse warning in pata_marvell.c
2008-02-15 13:51:30 -05:00
pata_mpc52xx.c
Merge branch 'linux-2.6'
2008-01-31 11:25:51 +11:00
pata_mpiix.c
Fix misspellings of "system", "controller", "interrupt" and "necessary".
2007-10-19 23:10:43 +02:00
pata_netcell.c
libata: Switch most of the remaining SFF drivers to ata_sff_port_start
2007-10-12 14:55:36 -04:00
pata_ninja32.c
pata_ninja32: setup changes
2008-02-11 14:30:07 -05:00
pata_ns87410.c
Fix misspellings of "system", "controller", "interrupt" and "necessary".
2007-10-19 23:10:43 +02:00
pata_ns87415.c
pata_ns87415: define SUPERIO_IDE_MAX_RETRIES
2007-10-29 06:21:33 -04:00
pata_of_platform.c
Rename: linux/pata_platform.h to linux/ata_platform.h
2008-02-06 06:54:17 -05:00
pata_oldpiix.c
Fix misspellings of "system", "controller", "interrupt" and "necessary".
2007-10-19 23:10:43 +02:00
pata_opti.c
libata: Switch most of the remaining SFF drivers to ata_sff_port_start
2007-10-12 14:55:36 -04:00
pata_optidma.c
[libata] fix 'if(' and similar areas that lack whitespace
2007-10-29 06:15:27 -04:00
pata_pcmcia.c
pata_pcmcia: convert to new data_xfer prototype
2008-01-23 05:24:15 -05:00
pata_pdc202xx_old.c
libata: rename ATA_PROT_ATAPI_* to ATAPI_PROT_*
2008-01-23 05:24:14 -05:00
pata_pdc2027x.c
libata annotations and fixes
2008-01-23 05:24:15 -05:00
pata_platform.c
Rename: linux/pata_platform.h to linux/ata_platform.h
2008-02-06 06:54:17 -05:00
pata_qdi.c
libata: update ->data_xfer hook for ATAPI
2008-01-23 05:24:14 -05:00
pata_radisys.c
Fix misspellings of "system", "controller", "interrupt" and "necessary".
2007-10-19 23:10:43 +02:00
pata_rz1000.c
libata: Switch most of the remaining SFF drivers to ata_sff_port_start
2007-10-12 14:55:36 -04:00
pata_sc1200.c
Fix misspellings of "system", "controller", "interrupt" and "necessary".
2007-10-19 23:10:43 +02:00
pata_scc.c
pata_scc.c: add thaw ops
2008-02-15 13:51:22 -05:00
pata_serverworks.c
pata_serverworks: Fix cable types and cosmetics
2008-01-23 05:24:17 -05:00
pata_sil680.c
pata_sil680: kill bogus reset code (take 2)
2007-11-23 19:23:55 -05:00
pata_sis.c
drivers/ata/: Spelling fixes
2008-02-03 17:08:11 +02:00
pata_sl82c105.c
pata_sl82c105: dual channel support
2008-02-01 12:26:40 -05:00
pata_triflex.c
libata: Switch most of the remaining SFF drivers to ata_sff_port_start
2007-10-12 14:55:36 -04:00
pata_via.c
pata_via: fix SATA cable detection on cx700
2008-02-11 14:29:42 -05:00
pata_winbond.c
pata_winbond: error return
2008-01-23 05:24:17 -05:00
pdc_adma.c
libata: convert to chained sg
2008-01-23 05:24:14 -05:00
sata_fsl.c
libata: eliminate the home grown dma padding in favour of
2008-02-19 11:36:56 +01:00
sata_inic162x.c
iommu sg merging: sata_inic162x: use pci_set_dma_max_seg_size
2008-02-05 09:44:11 -08:00
sata_mv.c
libata: eliminate the home grown dma padding in favour of
2008-02-19 11:36:56 +01:00
sata_nv.c
sata_nv: fix ATAPI issues with memory over 4GB (v7)
2008-02-06 07:00:27 -05:00
sata_promise.c
ata: fix sparse warning in sata_promise.c
2008-02-15 13:50:59 -05:00
sata_promise.h
libata annotations and fixes
2008-01-23 05:24:15 -05:00
sata_qstor.c
libata: convert to chained sg
2008-01-23 05:24:14 -05:00
sata_sil.c
libata: implement protocol tests
2008-01-23 05:24:10 -05:00
sata_sil24.c
libata: eliminate the home grown dma padding in favour of
2008-02-19 11:36:56 +01:00
sata_sis.c
[libata] Address some checkpatch-spotted issues
2007-10-29 06:15:27 -04:00
sata_svw.c
[libata] Address some checkpatch-spotted issues
2007-10-29 06:15:27 -04:00
sata_sx4.c
libata annotations and fixes
2008-01-23 05:24:15 -05:00
sata_uli.c
[libata] Address some checkpatch-spotted issues
2007-10-29 06:15:27 -04:00
sata_via.c
ata: fix sparse warning in sata_via.c
2008-02-15 13:51:01 -05:00
sata_vsc.c
[libata] Address some checkpatch-spotted issues
2007-10-29 06:15:27 -04:00
sis.h
libata: PATA-mode fixes for sis_sata
2007-07-02 10:17:42 -04:00