diff options
author | Jason Chen <b02280@freescale.com> | 2011-08-16 10:38:40 +0800 |
---|---|---|
committer | Jason Chen <b02280@freescale.com> | 2011-08-16 10:40:40 +0800 |
commit | 52660b68b23fe00b98e4ef461f90b6cfff1459a1 (patch) | |
tree | e63885c5d2a573bf848dbb3672f1e5d567148a48 | |
parent | 1df25f603dbceb304f9440944e5fd59e6ddbf33d (diff) |
ENGR00154880 ipuv3 dev: wait event could be signal return
wait_event_interruptible_timeout function could be signal
return, so we need add ERESTARTSYS return value to let libc
retry sys call.
Signed-off-by: Jason Chen <b02280@freescale.com>
-rw-r--r-- | drivers/mxc/ipu3/ipu_device.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/mxc/ipu3/ipu_device.c b/drivers/mxc/ipu3/ipu_device.c index 649d8668beed..63f646744f47 100644 --- a/drivers/mxc/ipu3/ipu_device.c +++ b/drivers/mxc/ipu3/ipu_device.c @@ -324,8 +324,10 @@ static int mxc_ipu_ioctl(struct inode *inode, struct file *file, if ((file->f_flags & O_NONBLOCK) && (irq_info[info.irq].irq_pending == 0)) return -EAGAIN; - wait_event_interruptible_timeout(irq_info[info.irq].waitq, + r = wait_event_interruptible_timeout(irq_info[info.irq].waitq, (irq_info[info.irq].irq_pending != 0), 2 * HZ); + if (r == -ERESTARTSYS) + return r; r = get_events(&info); } ret = -1; |