diff --git a/drivers/staging/hievent/hievent_driver.c b/drivers/staging/hievent/hievent_driver.c index a4b02b737213b1dc1451d3934bfb7c5ac8f8c532..477920dec00bdf3d41c4196bf7c2e1cfa5ab3ead 100644 --- a/drivers/staging/hievent/hievent_driver.c +++ b/drivers/staging/hievent/hievent_driver.c @@ -136,12 +136,17 @@ static int hievent_read_ring_head_buffer(unsigned char * const buffer, static ssize_t hievent_read(struct file *file, char __user *user_buf, size_t count, loff_t *ppos) { + int rc; size_t retval; struct hievent_entry header; (void)file; - wait_event_interruptible(hievent_dev.wq, (hievent_dev.size > 0)); + rc = wait_event_interruptible(hievent_dev.wq, (hievent_dev.size > 0)); + if (rc) { + retval = -EINVAL; + goto out; + } (void)mutex_lock(&hievent_dev.mtx); diff --git a/drivers/staging/hilog/hilog.c b/drivers/staging/hilog/hilog.c index b641190431b0d4f10a4bcadad52b17feeafc7828..6a47dc1985a2d7ab3d31d26075153d5fd12359b7 100644 --- a/drivers/staging/hilog/hilog.c +++ b/drivers/staging/hilog/hilog.c @@ -143,11 +143,16 @@ static int hilog_read_ring_head_buffer(unsigned char *buffer, size_t buf_len) static ssize_t hilog_read(struct file *file, char __user *user_buf, size_t count, loff_t *ppos) { + int rc; size_t retval; struct hilog_entry header; (void)file; - wait_event_interruptible(hilog_dev.wq, (hilog_dev.size > 0)); + rc = wait_event_interruptible(hilog_dev.wq, (hilog_dev.size > 0)); + if (rc) { + retval = -EINVAL; + goto out; + } (void)mutex_lock(&hilog_dev.mtx);