Bug 11247
Summary: | pata_pdc202xx_old, bug? | ||
---|---|---|---|
Product: | IO/Storage | Reporter: | n (noir) |
Component: | Serial ATA | Assignee: | Alan (alan) |
Status: | RESOLVED OBSOLETE | ||
Severity: | normal | CC: | alan, jfaulkne |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 2.6.32.3 | Subsystem: | |
Regression: | No | Bisected commit-id: |
Description
n
2008-08-04 02:06:11 UTC
ICRC is a cable error. In theory that means a hardware problem but in practice that can be caused by mode timing config problems or other funnies. I'll take a look over the code and see if I can make any of my WDC drives break with this controller This bug still exists in 2.6.32.3. I just dug my promise ultra66 out of the closet so I don't know when the driver stopped working. Here's my lspci: 05:04.0 Mass storage controller: Promise Technology, Inc. PDC20262 (FastTrak66/Ultra66) (rev 01) Subsystem: Promise Technology, Inc. Ultra66 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 22 Region 0: I/O ports at cc00 [size=8] Region 1: I/O ports at cb00 [size=4] Region 2: I/O ports at ca00 [size=8] Region 3: I/O ports at c900 [size=4] Region 4: I/O ports at c800 [size=64] Region 5: Memory at fd9c0000 (32-bit, non-prefetchable) [size=128K] [virtual] Expansion ROM at fd800000 [disabled] [size=64K] Here's my dmesg output when trying writes on the disk (reads did not seem to cause problems): [ 222.907641] ata12.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 [ 222.907645] ata12.00: BMDMA stat 0x4 [ 222.907648] ata12.00: failed command: WRITE DMA [ 222.907654] ata12.00: cmd ca/00:00:00:5d:00/00:00:00:00:00/e0 tag 0 dma 131072 out [ 222.907656] res 51/84:00:00:5d:00/00:00:00:00:00/e0 Emask 0x10 (ATA bus error) [ 222.907659] ata12.00: status: { DRDY ERR } [ 222.907661] ata12.00: error: { ICRC ABRT } [ 222.907682] ata12: soft resetting link [ 223.080451] ata12.00: configured for UDMA/66 [ 223.080463] ata12: EH complete [ 243.058243] ata12.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 [ 243.058247] ata12.00: BMDMA stat 0x4 [ 243.058251] ata12.00: failed command: WRITE DMA [ 243.058257] ata12.00: cmd ca/00:00:00:87:16/00:00:00:00:00/e0 tag 0 dma 131072 out [ 243.058258] res 51/84:00:00:87:16/00:00:00:00:00/e0 Emask 0x10 (ATA bus error) [ 243.058261] ata12.00: status: { DRDY ERR } [ 243.058263] ata12.00: error: { ICRC ABRT } [ 243.058283] ata12: soft resetting link [ 243.230451] ata12.00: configured for UDMA/66 [ 243.230465] ata12: EH complete I think that this bug may be the same as discussed here: http://patchwork.ozlabs.org/patch/41790/ I tried the patch at the very bottom of the above URL. It seemed to delay the failure, but eventually I would see errors, as well as possible data corruption. I was testing out btrfs on the disk, and started seeing "btrfs csum failed" errors. The drive works just fine when I use drivers/ide/pdc202xx_old.c. I've done some pretty heavy I/O tests, both read and write, with the drivers/ide/pdc202xx_old.c driver, and have seen no problems. It would be nice to see the libata driver fixed so that I don't have to enable the old IDE layer. |