Messages in this thread | | | Date | Mon, 12 Jan 2004 16:48:19 -0500 | From | Jeff Garzik <> | Subject | Re: [I810_AUDIO] 1/x: Fix wait queue race in drain_dac |
| |
Herbert Xu wrote: > On Sun, Jan 11, 2004 at 04:00:41PM -0500, Jeff Garzik wrote: > >>Thanks much for these i810_audio patches. I've been meaning to review >>them in-depth for some time. > > > Thanks a lot for reviewing them. > > >>Could you be kind and "spell out" the patch-1 race for me? > > > Prior to the patch, if an interrupt occured between the count check > and the setting of the current state the wait will timeout instead > of waking up immediately.
hmmm, I'll have to think on this one a bit. You are described observed behavior here... can you go a bit deeper, and describe what two code paths are racing? I think I might a _different_ race in the code we're looking at, but I do not yet see the race you are describing :(
>>Also, it seems to me that you would want to check for signal_pending() >>(a) just after the schedule_timeout(), and >>(b) -after- testing the 'signals_allowed' variable ;-) > > > schedule() already checks for signals.
Well -- A signal won't be pending until after you call schedule_timeout() ;-) A signal, particularly SIGINT, might even occur _during_ the schedule_timeout().
Jeff
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |