Latest working kernel version: 2.6.26 Earliest failing kernel version: 2.6.6~? Distribution: slackware Hardware Environment: 01:09.0 Mass storage controller: Promise Technology, Inc. PDC20267 (FastTrak100/Ultra100) (rev 02) Kernel driver in use: pata_pdc202xx_old Kernel modules: pata_pdc202xx_old hard drive WDC WD800BB-55JKC0 Software Environment: pata_pdc202xx_old,xfs Problem Description: i wasnt sure where to put this bug since its a ide drive but a sata developed driver when i go to mount the drive i get this error in my syslog, i have tried the other port / jumper settings etc but this driver doesnt like the wdc drive (it agrees ok with the maxtor drive), also the wdc drive never had a problem with the old "ide" driver, so it must be a bug right?. /var/log/syslog Aug 4 01:42:11 flame kernel: ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 Aug 4 01:42:11 flame kernel: ata3.00: BMDMA stat 0x4 Aug 4 01:42:11 flame kernel: ata3.00: cmd ca/00:01:3f:00:00/00:00:00:00:00/e0 tag 0 dma 512 out Aug 4 01:42:11 flame kernel: res 51/84:00:3f:00:00/00:00:00:00:00/e0 Emask 0x10 (ATA bus error) Aug 4 01:42:11 flame kernel: ata3.00: status: { DRDY ERR } Aug 4 01:42:11 flame kernel: ata3.00: error: { ICRC ABRT } Aug 4 01:42:11 flame kernel: ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 Aug 4 01:42:11 flame kernel: ata3.00: BMDMA stat 0x4 Aug 4 01:42:11 flame kernel: ata3.00: cmd ca/00:01:3f:00:00/00:00:00:00:00/e0 tag 0 dma 512 out Aug 4 01:42:11 flame kernel: res 51/84:00:3f:00:00/00:00:00:00:00/e0 Emask 0x10 (ATA bus error) Aug 4 01:42:11 flame kernel: ata3.00: status: { DRDY ERR } Aug 4 01:42:11 flame kernel: ata3.00: error: { ICRC ABRT } Aug 4 01:42:12 flame kernel: ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 Aug 4 01:42:12 flame kernel: ata3.00: BMDMA stat 0x4 Aug 4 01:42:12 flame kernel: ata3.00: cmd ca/00:01:3f:00:00/00:00:00:00:00/e0 tag 0 dma 512 out Aug 4 01:42:12 flame kernel: res 51/84:00:3f:00:00/00:00:00:00:00/e0 Emask 0x10 (ATA bus error) Aug 4 01:42:12 flame kernel: ata3.00: status: { DRDY ERR } Aug 4 01:42:12 flame kernel: ata3.00: error: { ICRC ABRT } Aug 4 01:42:12 flame kernel: ata3.00: limiting speed to UDMA/66:PIO4 Aug 4 01:42:12 flame kernel: ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 Aug 4 01:42:12 flame kernel: ata3.00: BMDMA stat 0x4 Aug 4 01:42:12 flame kernel: ata3.00: cmd ca/00:01:3f:00:00/00:00:00:00:00/e0 tag 0 dma 512 out Aug 4 01:42:12 flame kernel: res 51/84:00:3f:00:00/00:00:00:00:00/e0 Emask 0x10 (ATA bus error) Aug 4 01:42:12 flame kernel: ata3.00: status: { DRDY ERR } Aug 4 01:42:12 flame kernel: ata3.00: error: { ICRC ABRT } Aug 4 01:42:12 flame kernel: ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 Aug 4 01:42:12 flame kernel: ata3.00: BMDMA stat 0x4 Aug 4 01:42:12 flame kernel: ata3.00: cmd ca/00:01:3f:00:00/00:00:00:00:00/e0 tag 0 dma 512 out Aug 4 01:42:12 flame kernel: res 51/84:00:3f:00:00/00:00:00:00:00/e0 Emask 0x10 (ATA bus error) Aug 4 01:42:12 flame kernel: ata3.00: status: { DRDY ERR } Aug 4 01:42:12 flame kernel: ata3.00: error: { ICRC ABRT } Aug 4 01:42:13 flame noip[2651]: Can't get status for ppp0. (19) Aug 4 01:42:13 flame kernel: ata3.00: limiting speed to UDMA/33:PIO4 Aug 4 01:42:13 flame kernel: ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 Aug 4 01:42:13 flame kernel: ata3.00: BMDMA stat 0x4 Aug 4 01:42:13 flame kernel: ata3.00: cmd ca/00:01:3f:00:00/00:00:00:00:00/e0 tag 0 dma 512 out Aug 4 01:42:13 flame kernel: res 51/84:00:3f:00:00/00:00:00:00:00/e0 Emask 0x10 (ATA bus error) Aug 4 01:42:13 flame kernel: ata3.00: status: { DRDY ERR } Aug 4 01:42:13 flame kernel: ata3.00: error: { ICRC ABRT } Aug 4 01:42:13 flame kernel: Descriptor sense data with sense descriptors (in hex): Aug 4 01:42:13 flame kernel: end_request: I/O error, dev sde, sector 63 Aug 4 01:42:13 flame kernel: end_request: I/O error, dev sde, sector 63 Aug 4 01:42:13 flame kernel: ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 Aug 4 01:42:13 flame kernel: ata3.00: BMDMA stat 0x4 Aug 4 01:42:13 flame kernel: ata3.00: cmd ca/00:00:a2:ba:fd/00:00:00:00:00/e6 tag 0 dma 131072 out Aug 4 01:42:13 flame kernel: res 51/84:00:a2:ba:fd/00:00:00:00:00/e6 Emask 0x10 (ATA bus error) Aug 4 01:42:13 flame kernel: ata3.00: status: { DRDY ERR } Aug 4 01:42:13 flame kernel: ata3.00: error: { ICRC ABRT } Aug 4 01:42:14 flame kernel: ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 Aug 4 01:42:14 flame kernel: ata3.00: BMDMA stat 0x4 Aug 4 01:42:14 flame kernel: ata3.00: cmd ca/00:00:a2:ba:fd/00:00:00:00:00/e6 tag 0 dma 131072 out Aug 4 01:42:14 flame kernel: res 51/84:00:a2:ba:fd/00:00:00:00:00/e6 Emask 0x10 (ATA bus error) Aug 4 01:42:14 flame kernel: ata3.00: status: { DRDY ERR } Aug 4 01:42:14 flame kernel: ata3.00: error: { ICRC ABRT } Aug 4 01:42:14 flame kernel: ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 Aug 4 01:42:14 flame kernel: ata3.00: BMDMA stat 0x4 Aug 4 01:42:14 flame kernel: ata3.00: cmd ca/00:00:a2:ba:fd/00:00:00:00:00/e6 tag 0 dma 131072 out Aug 4 01:42:14 flame kernel: res 51/84:00:a2:ba:fd/00:00:00:00:00/e6 Emask 0x10 (ATA bus error) Aug 4 01:42:14 flame kernel: ata3.00: status: { DRDY ERR } Aug 4 01:42:14 flame kernel: ata3.00: error: { ICRC ABRT } Aug 4 01:42:14 flame kernel: ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 Aug 4 01:42:14 flame kernel: ata3.00: BMDMA stat 0x4 Aug 4 01:42:14 flame kernel: ata3.00: cmd ca/00:00:a2:ba:fd/00:00:00:00:00/e6 tag 0 dma 131072 out Aug 4 01:42:14 flame kernel: res 51/84:00:a2:ba:fd/00:00:00:00:00/e6 Emask 0x10 (ATA bus error) Aug 4 01:42:14 flame kernel: ata3.00: status: { DRDY ERR } Aug 4 01:42:14 flame kernel: ata3.00: error: { ICRC ABRT } Aug 4 01:42:15 flame kernel: ata3.00: limiting speed to PIO4 Aug 4 01:42:15 flame kernel: ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 Aug 4 01:42:15 flame kernel: ata3.00: BMDMA stat 0x4 Aug 4 01:42:15 flame kernel: ata3.00: cmd ca/00:00:a2:ba:fd/00:00:00:00:00/e6 tag 0 dma 131072 out Aug 4 01:42:15 flame kernel: res 51/84:00:a2:ba:fd/00:00:00:00:00/e6 Emask 0x10 (ATA bus error) Aug 4 01:42:15 flame kernel: ata3.00: status: { DRDY ERR } Aug 4 01:42:15 flame kernel: ata3.00: error: { ICRC ABRT } /var/log/messages Aug 4 01:42:11 flame kernel: ata3: soft resetting link Aug 4 01:42:11 flame kernel: ata3.00: configured for UDMA/100 Aug 4 01:42:11 flame kernel: ata3: EH complete Aug 4 01:42:11 flame kernel: ata3: soft resetting link Aug 4 01:42:12 flame kernel: ata3.00: configured for UDMA/100 Aug 4 01:42:12 flame kernel: ata3: EH complete Aug 4 01:42:12 flame kernel: sd 2:0:0:0: [sde] 234441648 512-byte hardware sectors (120034 MB) Aug 4 01:42:12 flame kernel: ata3: soft resetting link Aug 4 01:42:12 flame kernel: ata3.00: configured for UDMA/100 Aug 4 01:42:12 flame kernel: ata3: EH complete Aug 4 01:42:12 flame kernel: sd 2:0:0:0: [sde] Write Protect is off Aug 4 01:42:12 flame kernel: ata3: soft resetting link Aug 4 01:42:12 flame kernel: ata3.00: configured for UDMA/66 Aug 4 01:42:12 flame kernel: ata3: EH complete Aug 4 01:42:12 flame kernel: ata3: soft resetting link Aug 4 01:42:13 flame kernel: ata3.00: configured for UDMA/66 Aug 4 01:42:13 flame kernel: ata3: EH complete Aug 4 01:42:13 flame kernel: sd 2:0:0:0: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA Aug 4 01:42:13 flame kernel: ata3: soft resetting link Aug 4 01:42:13 flame kernel: ata3.00: configured for UDMA/33 Aug 4 01:42:13 flame kernel: sd 2:0:0:0: [sde] Result: hostbyte=0x00 driverbyte=0x08 Aug 4 01:42:13 flame kernel: sd 2:0:0:0: [sde] Sense Key : 0xb [current] [descriptor] Aug 4 01:42:13 flame kernel: 72 0b 47 00 00 00 00 0c 00 0a 80 00 00 00 00 00 Aug 4 01:42:13 flame kernel: 00 00 00 3f Aug 4 01:42:13 flame kernel: sd 2:0:0:0: [sde] ASC=0x47 ASCQ=0x0 Aug 4 01:42:13 flame kernel: ata3: EH complete Aug 4 01:42:13 flame kernel: sd 2:0:0:0: [sde] 234441648 512-byte hardware sectors (120034 MB) Aug 4 01:42:13 flame kernel: sd 2:0:0:0: [sde] Write Protect is off Aug 4 01:42:13 flame kernel: sd 2:0:0:0: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA Aug 4 01:42:13 flame kernel: sd 2:0:0:0: [sde] 234441648 512-byte hardware sectors (120034 MB) Aug 4 01:42:13 flame kernel: sd 2:0:0:0: [sde] Write Protect is off Aug 4 01:42:13 flame kernel: sd 2:0:0:0: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA Aug 4 01:42:13 flame kernel: Filesystem "sde1": Disabling barriers, trial barrier write failed Aug 4 01:42:13 flame kernel: XFS mounting filesystem sde1 Aug 4 01:42:13 flame kernel: ata3: soft resetting link Aug 4 01:42:14 flame kernel: ata3.00: configured for UDMA/33 Aug 4 01:42:14 flame kernel: ata3: EH complete Aug 4 01:42:14 flame kernel: ata3: soft resetting link Aug 4 01:42:14 flame kernel: ata3.00: configured for UDMA/33 Aug 4 01:42:14 flame kernel: ata3: EH complete Aug 4 01:42:14 flame kernel: ata3: soft resetting link Aug 4 01:42:14 flame kernel: ata3.00: configured for UDMA/33 Aug 4 01:42:14 flame kernel: ata3: EH complete Aug 4 01:42:14 flame kernel: ata3: soft resetting link Aug 4 01:42:15 flame kernel: ata3.00: configured for UDMA/33 Aug 4 01:42:15 flame kernel: ata3: EH complete Aug 4 01:42:15 flame kernel: ata3: soft resetting link Aug 4 01:42:15 flame kernel: ata3.00: configured for PIO4 Aug 4 01:42:15 flame kernel: ata3: EH complete Aug 4 01:42:15 flame kernel: sd 2:0:0:0: [sde] 234441648 512-byte hardware sectors (120034 MB) Aug 4 01:42:15 flame kernel: sd 2:0:0:0: [sde] Write Protect is off Aug 4 01:42:15 flame kernel: sd 2:0:0:0: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA Aug 4 01:42:15 flame kernel: sd 2:0:0:0: [sde] 234441648 512-byte hardware sectors (120034 MB) Aug 4 01:42:15 flame kernel: sd 2:0:0:0: [sde] Write Protect is off Aug 4 01:42:15 flame kernel: sd 2:0:0:0: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA Steps to reproduce:
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.