aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide
diff options
context:
space:
mode:
authorAlan Cox <alan@lxorguk.ukuu.org.uk>2006-06-28 04:27:01 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-28 14:59:06 -0700
commitda574af755bcb1d604e01feadf2a8c31b364447c (patch)
treede8548adf6ea7205314f0813afb3fb83a9e7da6a /drivers/ide
parent2930d1bed7ffea3062e43b8acdeb9e0587bfc6a9 (diff)
downloadkernel_samsung_aries-da574af755bcb1d604e01feadf2a8c31b364447c.zip
kernel_samsung_aries-da574af755bcb1d604e01feadf2a8c31b364447c.tar.gz
kernel_samsung_aries-da574af755bcb1d604e01feadf2a8c31b364447c.tar.bz2
[PATCH] ide: fix error handling for drives which clear the FIFO on error
If the controller FIFO cleared automatically on error we must not try and drain it as this will hang some chips. Based in concept on a broken patch from -mm some while back Signed-off-by: Alan Cox <alan@redhat.com> Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com> Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/ide')
-rw-r--r--drivers/ide/ide-io.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c
index 935cb25..26ceab1 100644
--- a/drivers/ide/ide-io.c
+++ b/drivers/ide/ide-io.c
@@ -505,7 +505,7 @@ static ide_startstop_t ide_ata_error(ide_drive_t *drive, struct request *rq, u8
}
}
- if ((stat & DRQ_STAT) && rq_data_dir(rq) == READ)
+ if ((stat & DRQ_STAT) && rq_data_dir(rq) == READ && hwif->err_stops_fifo == 0)
try_to_flush_leftover_data(drive);
if (hwif->INB(IDE_STATUS_REG) & (BUSY_STAT|DRQ_STAT))