On Mon, Dec 1, 2014 at 4:37 PM, Jacobo Pantoja <jacobopantoja@xxxxxxxxx> wrote: >> Looks like it's doing a hardreset now (apparently successfully). >> However the reason it still does a softreset anyway is this at the end >> of nv_hardreset: >> >> /* device signature acquisition is unreliable */ >> return -EAGAIN; >> >> Try changing that to: >> >> return 0; >> >> and see if that changes the behavior. That should make it skip the >> soft-reset. Whether or not the device works or not after that, or if >> it still locks up at some later point, we'll see. > > Ok, after changing -EAGAIN to 0, I cannot boot it completely (it > cannot find the rootfs). Every 10s aprox. it stops, but after some 10 > tries, it gives up with a panic. > > I have made pictures but not processed yet (I will soon, but I doubt > they are going to be useful). > > I guess that the only useful stuff I can do is booting from a USB. > With my MoBo it is difficult, I will have to play with GRUB. > > I will be back. OK, well obviously doing a hardreset unconditionally doesn't work well. How about changing the code in that function to this - basically, only skip hardreset for initial probing, otherwise use hardreset and skip follow-up softreset: if (!(link->ap->pflags & ATA_PFLAG_LOADING)) return sata_link_hardreset(link, sata_deb_timing_hotplug, deadline, NULL, NULL); else { const unsigned long *timing = sata_ehc_deb_timing(ehc); int rc; if (!(ehc->i.flags & ATA_EHI_QUIET)) ata_link_info(link, "nv: skipping hardreset on occupied port\n"); /* make sure the link is online */ rc = sata_link_resume(link, timing, deadline); /* whine about phy resume failure but proceed */ if (rc && rc != -EOPNOTSUPP) ata_link_warn(link, "failed to resume link (errno=%d)\n", rc); } /* device signature acquisition is unreliable */ return -EAGAIN; -- 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