Hello, Gary. Gary Hade wrote: > I instrumented the code and found that for the SATA hard drive BSY was set > just before the call to ahci_init_port() from ahci_port_start() and clear > after the return from ahci_init_port(). For the GoVault BSY was still set > after the return from ahci_init_port() and remained set for almost 2 seconds. > > The below patch which gives BSY some extra time to clear repairs the problem. > Unlike the extra delay for ata-piix needed by GoVault I believe this delay > will only be seen for attached devices that need it. Please let me know > what you think. Can you post full dmesg without the patch? And which controller are you using (lspci -nn please)? How come it doesn't support CLO? I don't think the patch is a good idea. !BSY wait before reset is supposed to be done in ->prereset() if possible. ahci skips that step because waiting for !BSY isn't reliable after hotplug and it often wastes 30secs for no good reason after an hotplug event. Even if you need to add that specific shorter wait, the correct place would be ->prereset() not at the end of ->port_start(). I don't think fixing here and there for GoVault drive is a good idea. It's not gonna be tested widely and GoValut would end up working on some controllers while broken on others. I think recently posted EH improvements and faster reset patches should help here. The first reset will fail timely and all in all the drive should be detected in slightly over ten secs, which isn't that bad and actually is okay if parallel probing is implemented. I dunno. Maybe the correct thing to do is wait briefly for !BSY in std_prereset() when SKIP_D2H_BSY is set. What status value does the controller report in that state - 0x80 or 0xff? Thanks. -- tejun - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html