aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide
diff options
context:
space:
mode:
authorElias Oltmanns <eo@nebensachen.de>2009-03-31 14:14:56 -0400
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2009-03-31 14:14:56 -0400
commit9010941c5483a7a5bb1f7d97ee62491fb078bb51 (patch)
tree0aaea427f70b0431fc7a98c68b7bc9fd012d0dbc /drivers/ide
parente1c502482853f84606928f5a2f2eb6da1993cda1 (diff)
ide: Fix code dealing with sleeping devices in do_ide_request()
Unfortunately, I missed a catch when reviewing the patch committed as 201bffa4. Here is the fix to the currently broken handling of sleeping devices. In particular, this is required to get the disk shock protection code working again. Reported-by: Christian Thaeter <ct@pipapo.org> Cc: stable@kernel.org Signed-off-by: Elias Oltmanns <eo@nebensachen.de> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide')
-rw-r--r--drivers/ide/ide-io.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c
index 1adc5e2e7fb3..3c52317d8524 100644
--- a/drivers/ide/ide-io.c
+++ b/drivers/ide/ide-io.c
@@ -481,11 +481,10 @@ repeat:
481 prev_port = hwif->host->cur_port; 481 prev_port = hwif->host->cur_port;
482 hwif->rq = NULL; 482 hwif->rq = NULL;
483 483
484 if (drive->dev_flags & IDE_DFLAG_SLEEPING) { 484 if (drive->dev_flags & IDE_DFLAG_SLEEPING &&
485 if (time_before(drive->sleep, jiffies)) { 485 time_after(drive->sleep, jiffies)) {
486 ide_unlock_port(hwif); 486 ide_unlock_port(hwif);
487 goto plug_device; 487 goto plug_device;
488 }
489 } 488 }
490 489
491 if ((hwif->host->host_flags & IDE_HFLAG_SERIALIZE) && 490 if ((hwif->host->host_flags & IDE_HFLAG_SERIALIZE) &&