aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/libata-core.c
Commit message (Collapse)AuthorAgeFilesLines
* [PATCH] libata: lengthen COMMRESET delayTejun Heo2005-06-281-1/+3
| | | | | | | | | This patch lengthens the delay between DET setting and clearing for COMMRESET from 400us to 1ms. I couldn't find any requiremen regarding the duration of COMMRESET in SATA I/II specs but AHCI-1.1 10.4.2 states that it should be at least 1ms. Signed-off-by: Tejun Heo <htejun@gmail.com>
* libata: update DMA blacklistJeff Garzik2005-06-281-1/+1
| | | | Contributions from Alan Cox and maximilian attems.
* Merge /spare/repo/linux-2.6/Jeff Garzik2005-06-181-3/+1
|\
| * [PATCH] sg traverse fix for __atapi_pio_bytes()Albert Lee2005-06-091-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Incorrect md5sum when using ATAPI PIO mode to verify a distro CD. Root cause: sg traverse problem. In __atapi_pio_bytes(), if qc->cursg++ is increased and "goto next_page" is executed, then sg is not updated to the new qc->cursg and the old sg is overwritten with the new data. Changes: - Replace "goto next_page" with "goto next_sg" to make sg updated. Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
* | Automatic merge of /spare/repo/linux-2.6/.git branch HEAD2005-06-031-58/+452
|\ \ | |/
| * Automatic merge of /spare/repo/linux-2.6/.git branch HEAD2005-06-021-4/+11
| |\
| | * Automatic merge of /spare/repo/netdev-2.6 branch use-after-unmap2005-05-291-4/+11
| | |\
| | | * libata: Fix use-after-iounmapJeff Garzik2005-05-261-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Jens Axboe pointed out that the iounmap() call in libata was occurring too early, and some drivers (ahci, probably others) were using ioremap'd memory after it had been unmapped. The patch should address that problem by way of improving the libata driver API: * move ->host_stop() call after all ->port_stop() calls have occurred. * create default helper function ata_host_stop(), and move iounmap() call there. * add ->host_stop_prewalk() hook, use it in sata_qstor.c (hi Mark). sata_qstor appears to require the host-stop-before-port-stop ordering that existed prior to applying the attached patch.
| * | | libata: kernel-doc warning fixesJeff Garzik2005-06-021-3/+3
| | | |
| * | | libata: update inline source docsEdward Falk2005-06-021-7/+276
| | | |
| * | | libata: doc updatesJeff Garzik2005-05-301-33/+117
| | | |
| * | | libata: more doc updatesJeff Garzik2005-05-301-13/+44
| |/ / | | | | | | | | | | | | | | | Document recently-added ata_port_operations hooks. Fill several doc stubs in libata-core.c.
| * | [PATCH] libata: Fix zero sg_dma_len() on 64-bit platformAlbert Lee2005-05-261-6/+7
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When testing ATAPI PIO data transfer on the ppc64 platform, __atapi_pio_bytes() got zero when sg_dma_len() is used. I checked the <asm-ppc64/scatterlish.h>, the struct scatterlist is defined as: struct scatterlist { struct page *page; unsigned int offset; unsigned int length; /* For TCE support */ u32 dma_address; u32 dma_length; }; #define sg_dma_address(sg) ((sg)->dma_address) #define sg_dma_len(sg) ((sg)->dma_length) So, if the scatterlist is not DMA mapped, sg_dma_len() will return zero on ppc64. The same problem should occur on the x86-64 platform. On the i386 platform, sg_dma_len() returns sg->length, that's why the problem does not occur on an i386. Changes: - Use sg->length if the scatterlist is not DMA mapped (yet). Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
| * [PATCH] libata: flush COMRESET set and clearBrett Russ2005-05-151-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | Updated patch to fix erroneous flush of COMRESET set and missing flush of COMRESET clear. Created a new routine scr_write_flush() to try to prevent this in the future. Also, this patch is based on libata-2.6 instead of the previous libata-dev-2.6 based patch. Signed-off-by: Brett Russ <russb@emc.com> Index: libata-2.6/drivers/scsi/libata-core.c ===================================================================
| * [PATCH] libata: Prevent the interrupt handler from completing a command twiceAlbert Lee2005-05-151-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: During the libata CD-ROM stress test, sometimes the "BUG: timeout without command" error is seen. Root cause: Unexpected interrupt occurs after the ata_qc_complete() is called, but before the SCSI error handler. The interrupt handler is invoked before the SCSI error handler, and it clears the command by calling ata_qc_complete() again. Later when the SCSI error handler is run, the ata_queued_cmd is already gone, causing the "BUG: timeout without command" error. Changes: - Use the ATA_QCFLAG_ACTIVE flag to prevent the interrupt handler from completing the command twice, before the scsi_error_handler. Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
* | [PATCH] libata basic detection and errata for PATA->SATA bridgesBrad Campbell2005-05-121-2/+33
|/ | | | | | | | This patch works around an issue with WD drives (and possibly others) over SiL PATA->SATA Bridges on SATA controllers locking up with transfers > 200 sectors. Signed-off-by: Brad Campbell <brad@wasp.net.au>
* Linux-2.6.12-rc2Linus Torvalds2005-04-161-0/+4024
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!