On 2/18/11, Tejun Heo <tj@xxxxxxxxxx> wrote: > On Fri, Feb 18, 2011 at 10:28:51PM +0530, viresh kumar wrote: >> > Hmmm... so, now there's a work item which requeues itself. That can't >> > be reliably stopped from freeze() as it's called with host lock held >> > without process context. I think you should override >> > ->error_handler() which looks like the following, >> >> actually i am disabling controller in freeze. After which we will >> surely get timeout here and >> so finally we will get an error in this work. Wouldn't that be enough? > > Hmmm... libata usually invokes EH right away after freeze(). It'll > abort everything in flight and wake up the EH. freeze()'s job is to > _try_ to quiesce the controller until reset and used when libata isn't > sure which state the port is in, so I think you would still need to > kill the work items on entry to EH. BTW, have you tested the EH > paths? Inducing fake failures from interrupt handler and let things > just slide so that timeout happens should do the trick. > I haven't done any such testing yet. What should i call for fake failures from interrupt handler. freeze()?? or As i am doing in dma_xfer for real failures? -- 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