diff options
author | Eli Billauer <eli.billauer@gmail.com> | 2014-09-04 17:47:49 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-09-08 13:58:19 -0700 |
commit | ae870e5d04f4ebc6c27e76652dccb6bacc6e1e8e (patch) | |
tree | d7a9504562f81cd5783a15fe7f1812e5843dc513 /drivers | |
parent | 40931bbbfe7361d873b235e0667481c47796890a (diff) | |
download | linux-ae870e5d04f4ebc6c27e76652dccb6bacc6e1e8e.tar.bz2 |
staging: xillybus: Use the return value of wait_event_interruptible
Rather than checking the wait condition, the return value of
wait_event_interruptible() and wait_event_interruptible_timeout() is
used.
Suggested-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Eli Billauer <eli.billauer@gmail.com>
Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/staging/xillybus/xillybus_core.c | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/drivers/staging/xillybus/xillybus_core.c b/drivers/staging/xillybus/xillybus_core.c index 53d5e4203248..63c2c14f876e 100644 --- a/drivers/staging/xillybus/xillybus_core.c +++ b/drivers/staging/xillybus/xillybus_core.c @@ -615,6 +615,7 @@ static int xilly_obtain_idt(struct xilly_endpoint *endpoint) { struct xilly_channel *channel; unsigned char *version; + long t; channel = endpoint->channels[1]; /* This should be generated ad-hoc */ @@ -624,11 +625,11 @@ static int xilly_obtain_idt(struct xilly_endpoint *endpoint) (3 << 24), /* Opcode 3 for channel 0 = Send IDT */ endpoint->registers + fpga_buf_ctrl_reg); - wait_event_interruptible_timeout(channel->wr_wait, - (!channel->wr_sleepy), - XILLY_TIMEOUT); + t = wait_event_interruptible_timeout(channel->wr_wait, + (!channel->wr_sleepy), + XILLY_TIMEOUT); - if (channel->wr_sleepy) { + if (t <= 0) { dev_err(endpoint->dev, "Failed to obtain IDT. Aborting.\n"); if (endpoint->fatal_error) @@ -943,7 +944,7 @@ interrupted: /* Mutex is not held if got here */ (!channel->wr_sleepy), left_to_sleep); - if (!channel->wr_sleepy) + if (left_to_sleep > 0) /* wr_sleepy deasserted */ continue; if (left_to_sleep < 0) { /* Interrupt */ @@ -1379,10 +1380,8 @@ static ssize_t xillybus_write(struct file *filp, const char __user *userbuf, break; } - wait_event_interruptible(channel->rd_wait, - (!channel->rd_full)); - - if (channel->rd_full) { + if (wait_event_interruptible(channel->rd_wait, + (!channel->rd_full))) { mutex_unlock(&channel->rd_mutex); if (channel->endpoint->fatal_error) @@ -1931,16 +1930,17 @@ EXPORT_SYMBOL(xillybus_init_endpoint); static int xilly_quiesce(struct xilly_endpoint *endpoint) { + long t; + endpoint->idtlen = -1; iowrite32((u32) (endpoint->dma_using_dac & 0x0001), endpoint->registers + fpga_dma_control_reg); - wait_event_interruptible_timeout(endpoint->ep_wait, - (endpoint->idtlen >= 0), - XILLY_TIMEOUT); - - if (endpoint->idtlen < 0) { + t = wait_event_interruptible_timeout(endpoint->ep_wait, + (endpoint->idtlen >= 0), + XILLY_TIMEOUT); + if (t <= 0) { dev_err(endpoint->dev, "Failed to quiesce the device on exit.\n"); return -ENODEV; @@ -1951,6 +1951,7 @@ static int xilly_quiesce(struct xilly_endpoint *endpoint) int xillybus_endpoint_discovery(struct xilly_endpoint *endpoint) { int rc; + long t; void *bootstrap_resources; int idtbuffersize = (1 << PAGE_SHIFT); @@ -1999,11 +2000,10 @@ int xillybus_endpoint_discovery(struct xilly_endpoint *endpoint) iowrite32((u32) (endpoint->dma_using_dac & 0x0001), endpoint->registers + fpga_dma_control_reg); - wait_event_interruptible_timeout(endpoint->ep_wait, - (endpoint->idtlen >= 0), - XILLY_TIMEOUT); - - if (endpoint->idtlen < 0) { + t = wait_event_interruptible_timeout(endpoint->ep_wait, + (endpoint->idtlen >= 0), + XILLY_TIMEOUT); + if (t <= 0) { dev_err(endpoint->dev, "No response from FPGA. Aborting.\n"); return -ENODEV; } |