Tejun (and all) - I've attached a log from my machine marked up with a few extra printk's. I did add the ssleep() you suggested off line - made no difference. I'll be happy to add more prinks in places that I did not ... ...tom the working log (visible then): [4194022.295042] ata6: SATA max UDMA/100 host m128@0x9aa9000 port 0x9aa4000 irq 31 [4194022.295042] ata7: SATA max UDMA/100 host m128@0x9aa9000 port 0x9aa6000 irq 31 [4194024.462033] ata4: SATA link up 3.0 Gbps (SStatus 123 SControl 0) [4194024.462033] ata4.15: Port Multiplier 1.1, 0x1095:0x4726 r31, 7 ports, feat 0x1/0x9 [4194024.463009] ata4.00: hard resetting link [4194024.770626] ata4.00: SATA link up 3.0 Gbps (SStatus 123 SControl 320) Now insetad, I see: ata1: SATA max UDMA/100 host m128@0x9aa9000 port 0x9aa0000 irq 31 ata2: SATA max UDMA/100 host m128@0x9aa9000 port 0x9aa2000 irq 31 ata3: SATA max UDMA/100 host m128@0x9aa9000 port 0x9aa4000 irq 31 ata4: SATA max UDMA/100 host m128@0x9aa9000 port 0x9aa6000 irq 31 ata1: ata_eh_recover - 1 ata1: ata_eh_recover - 2 re-enable link? ata1.00: ata_eh_recover - 3 ata1.00: ata_eh_recover - 5 ata1.00: ata_eh_recover - 6 ata1.00: ata_eh_recover -> ata_dev_init 7 ata_eh_recover - 8 - retry ata1: ata_eh_recover - 8a prep for EH ata1: ata_eh_recover - reset ata1: ata_eh_recover - ATA_DEV_UNKNOWN ata_eh_recover - 9 - reset is true ata_eh_recover -> freezing port -> nr_pmp_links == 0 ata1: ata_eh_recover -> ata_eh_reset Tejun Heo wrote: > Thomas Evans wrote: > >> I'm gonna throw a bunch of printfk's around to see what happens as well. >> > > Great, please don't forget to cc linux-ide when reporting result. > >