patch: fix 30 second hang while resuming
Nate Lawson
nate at root.org
Sun Jul 3 00:38:19 GMT 2005
Anish Mistry wrote:
> On Sunday 27 February 2005 06:12 pm, Nate Lawson wrote:
>
>>Nate Lawson wrote:
>>
>>>My system hangs a long time in ata_generic_reset() while
>>>resuming. I did some hunting and found that the loop was running
>>>for the full 310 * 100 ms (31 seconds). The bug is that the loop
>>>never exits when mask goes to 0 even though this is a termination
>>>condition (see end of the loop where the code masks off 1 and 2).
>>>
>>>The attached patch fixes this by exiting when the mask is set to
>>>0 instead of looping the full 31 seconds. This is correct since
>>>setting the mask to 0 is how the loop marks master/slave "done".
>>>It also has a minor whitespace fix.
>>
>>Apologies, the last patch was not quite right. You need to check
>>that both status values are not "busy" as well as the mask. This
>>check could be merged in elsewhere as well. This was just a
>>convenient place to put it.
>>
>>Please use the attached patch instead.
>
> This works well for me. Is this going to be committed?
>
Already done (by Matthew Dodd). It will hopefully be MFCd before 5.4.
--
Nate
_______________________________________________
freebsd-current at freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"
More information about the freebsd-stable
mailing list