On Tuesday 23 November 2004 21:49, Alan Chandler wrote:
Before, I thought my hardware was a little out of spec - now I think there
is something else at play here.
Firstly, I think there might be another race condition like the one Alan Cox found. I attach a patch below with the fix for that (against 2.6.10-rc2, an including Alan's patch) I'm not 100% sure its necessary, but it seems fix a variation I have been seeing.
With it in place, and apart from the ongoing issue - see below, I have managed to remove the delay in drive_is_ready() altogether without any ill effects.
[my reading of the ATA spec is that 400ns is needed after reading the status reg before IRQ is removed, I had wondered whether it would be better to record the time here and then check whether we had used up the 400ns just before returning from the interrupt state]