ieee1394/video1394: replace
PATCH 1/1 ieee1394/video1394: replace
Quoted 9 lines · Jody McIntyre
Quoted 5 lines · Nishanth Aravamudan
Quoted 1 line · Jody McIntyre
Please add a Signed-off-by: line.
Will do, I just wanted to get you a patch to test first. If it works, I'll send an "official" one :)
It's been over a week and nobody's reported any problems with your patch. Please send an "official" one and I will apply it.
Description: Use wait_event_interruptible() instead of the deprecated interruptible_sleep_on(). Add a helper function to make the condition for wait_event_interruptible() sane and lock-safe. Patch is compile-tested.
Signed-off-by Nishanth Aravamudan <[email protected]>
drivers/ieee1394/video1394.c +16 -17
@@ -699,6 +699,17 @@ static void initialize_dma_it_ctx(structreg_write (ohci, OHCI1394_IsoXmitIntMaskSet,1 <<d->ctx); } +static inline unsigned video1394_buffer_state (struct dma_iso_ctx *d, +unsigned int buffer) +{ +unsigned long flags; +unsigned int ret; +spin_lock_irqsave (&d->lock, flags); + ret = d->buffer_status[buffer]; +spin_unlock_irqrestore (&d->lock, flags); +return ret; +} +static int __video1394_ioctl (struct file *file,unsigned int cmd,unsigned long arg) {
@@ -952,24 +963,12 @@ static int __video1394_ioctl(struct filereturn -EINTR ; } -#if 1 -while (d->buffer_status[v.buffer]!= -VIDEO1394_BUFFER_READY ) { -spin_unlock_irqrestore (&d->lock, flags); -interruptible_sleep_on (&d->waitq); -spin_lock_irqsave (&d->lock, flags); -if (signal_pending (current)) { -spin_unlock_irqrestore (&d->lock,flags); -return -EINTR ; - } - } -#else -if (wait_event_interruptible (d->waitq, - d->buffer_status[v.buffer] - ==VIDEO1394_BUFFER_READY ) - == -ERESTARTSYS ) +spin_unlock_irqrestore (&d->lock, flags); +wait_event_interruptible (d->waitq, +video1394_buffer_state (d, v.buffer) ==VIDEO1394_BUFFER_READY ); +if (signal_pending (current))return -EINTR ; -#endif +spin_lock_irqsave (&d->lock, flags); d->buffer_status[v.buffer]=VIDEO1394_BUFFER_FREE ;break ;default :
_______________________________________________
Kernel-janitors mailing list
[email protected]
http://lists.osdl.org/mailman/listinfo/kernel-janitors