Today I tried the kernel 2.6.35 in one of my boxes but I realized that the box doesn't detect my SATA HD anymore. The logs show that the driver sata_sil is correctly loaded. With 2.6.34 it worked fine. So I tried to test the latest git to see if the issue was fixed, but that kernel exhibits the same behaviour. Then I looked at the linux-ide mailing list archives at http://marc.info/?t=128232284600001&r=1&w=2 and I found out that the issue is known but not solved and since I could reliably reproduce the problen I started to bisect. The logs of the bisection are attached. It pointed to the commit 978c066691a49a205673672a55685305663a2554 ( libata: Remove excess delay in the tf_load path ). So I reverted that commit and got a bootable kernel again. I think this commit exposed a timing bug in the sata_sil driver. gianluca
git bisect start '--' 'drivers/ata' # bad: [1506707a6c740db316e422239a53ae5df1727591] Linux 2.6.35.4 git bisect bad 1506707a6c740db316e422239a53ae5df1727591 # good: [e40152ee1e1c7a63f4777791863215e3faa37a86] Linus 2.6.34 git bisect good e40152ee1e1c7a63f4777791863215e3faa37a86 # bad: [c7087652e1890a3feef35b30ee1d4be68e1932cd] libata-sff: clean up BMDMA initialization git bisect bad c7087652e1890a3feef35b30ee1d4be68e1932cd # good: [fe6005b81e142c36f066b81ca85f80022c4ac979] pata_scc: make scc_wait_after_reset() static git bisect good fe6005b81e142c36f066b81ca85f80022c4ac979 # bad: [978c066691a49a205673672a55685305663a2554] libata: Remove excess delay in the tf_load path git bisect bad 978c066691a49a205673672a55685305663a2554 # good: [41dec29bcb05eb8ec396f70ce791c6e3e4ce4712] libata: introduce sff_set_devctl() method git bisect good 41dec29bcb05eb8ec396f70ce791c6e3e4ce4712 # good: [276a47a93dbfe5d35261451925020f65cdbfcce8] pata_cmd640: don't read CFR pointlessly git bisect good 276a47a93dbfe5d35261451925020f65cdbfcce8 # good: [95cc2c70c139936a2142bcd583da8af6f9d88efb] sata_nv: use ata_pci_sff_activate_host() instead of ata_host_activate() git bisect good 95cc2c70c139936a2142bcd583da8af6f9d88efb
commit 978c066691a49a205673672a55685305663a2554 Author: Alan Cox <alan@xxxxxxxxxxxxxxx> Date: Wed May 5 10:24:57 2010 +0100 libata: Remove excess delay in the tf_load path We don't need to stall and wait after loading the task file and before issuing a command, so don't do it. This shows up on profiles and is not needed. Signed-off-by: Alan Cox <alan@xxxxxxxxxxxxxxx> Signed-off-by: Jeff Garzik <jgarzik@xxxxxxxxxx>