summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElias Oltmanns <eo@nebensachen.de>2009-03-31 18:14:56 (GMT)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2009-03-31 18:14:56 (GMT)
commit9010941c5483a7a5bb1f7d97ee62491fb078bb51 (patch)
tree0aaea427f70b0431fc7a98c68b7bc9fd012d0dbc
parente1c502482853f84606928f5a2f2eb6da1993cda1 (diff)
downloadlinux-fsl-qoriq-9010941c5483a7a5bb1f7d97ee62491fb078bb51.tar.xz
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>
-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 1adc5e2..3c52317 100644
--- a/drivers/ide/ide-io.c
+++ b/drivers/ide/ide-io.c
@@ -481,11 +481,10 @@ repeat:
prev_port = hwif->host->cur_port;
hwif->rq = NULL;
- if (drive->dev_flags & IDE_DFLAG_SLEEPING) {
- if (time_before(drive->sleep, jiffies)) {
- ide_unlock_port(hwif);
- goto plug_device;
- }
+ if (drive->dev_flags & IDE_DFLAG_SLEEPING &&
+ time_after(drive->sleep, jiffies)) {
+ ide_unlock_port(hwif);
+ goto plug_device;
}
if ((hwif->host->host_flags & IDE_HFLAG_SERIALIZE) &&