@@ -1563,7 +1563,7 @@ unsigned ata_exec_internal_sg(struct ata_device *dev,
DECLARE_COMPLETION_ONSTACK(wait);
unsigned long flags;
unsigned int err_mask;
- int rc;
+ unsigned long time_left;
spin_lock_irqsave(ap->lock, flags);
@@ -1644,14 +1644,15 @@ unsigned ata_exec_internal_sg(struct ata_device *dev,
if (ap->ops->error_handler)
ata_eh_release(ap);
- rc = wait_for_completion_timeout(&wait, msecs_to_jiffies(timeout));
+ time_left = wait_for_completion_timeout(&wait,
+ msecs_to_jiffies(timeout));
if (ap->ops->error_handler)
ata_eh_acquire(ap);
ata_sff_flush_pio_task(ap);
- if (!rc) {
+ if (time_left == 0) {
spin_lock_irqsave(ap->lock, flags);
/* We're racing with irq here. If we lose, the
return type of wait_for_completion_timeout is unsigned long not int. The return variable is renamed to reflect its use and the type adjusted to unsigned long. Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> --- v2: rename of variable to make the timeout condition clear as requested by Tejun Heo <tj@kernel.org> Patch was only compile tested with x86_64_defconfig (implies CONFIG_ATA=y) Patch is against 3.19.0 (localversion-next is -next-20150210) drivers/ata/libata-core.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)