From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Anders Eriksson <aeriksson@fastmail.fm>,
"Rafael J. Wysocki" <rjw@sisk.pl>,
Jens Axboe <jens.axboe@oracle.com>, Ingo Molnar <mingo@elte.hu>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: Linux 2.6.25-rc4
Date: Sun, 16 Mar 2008 20:54:04 +0100 [thread overview]
Message-ID: <200803162054.04757.bzolnier@gmail.com> (raw)
In-Reply-To: <alpine.LFD.1.00.0803161111000.3020@woody.linux-foundation.org>
On Sunday 16 March 2008, Linus Torvalds wrote:
>
> On Sun, 16 Mar 2008, Bartlomiej Zolnierkiewicz wrote:
> >
> > We don't do error handling for special commands (REQ_TYPE_ATA_*) at all,
> > ide_error() just dumps device's status/error register(s) and finishes early:
>
> Well that sounds bogus too, for all the same reasons already outlined. The
> DRQ flag needs to be cleared up on error!
OK, lets try it.
From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Subject: [PATCH] ide: correctly handle DRQ bit set on error also for special requests
commit 4d977e43d8ae758434e603cf2455d955f71c77c4 ("ide: check BUSY and ERROR
status bits before reading data in drive_cmd_intr()") changed DRQ handling
logic (as pointed out by Linus).
Fix it by flushing leftover data for commands using PIO-in protocol
and special requests (rq->cmd_type == REQ_TYPE_ATA_TASKFILE).
Cc: Anders Eriksson <aeriksson@fastmail.fm>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
---
against 2.6.25-rc5, untested
drivers/ide/ide-io.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
Index: b/drivers/ide/ide-io.c
===================================================================
--- a/drivers/ide/ide-io.c
+++ b/drivers/ide/ide-io.c
@@ -540,12 +540,19 @@ EXPORT_SYMBOL_GPL(__ide_error);
ide_startstop_t ide_error (ide_drive_t *drive, const char *msg, u8 stat)
{
- struct request *rq;
+ ide_hwif_t *hwif = drive->hwif;
+ struct request *rq = hwif->hwgroup->rq;
u8 err;
+ if (rq && rq->cmd_type == REQ_TYPE_ATA_TASKFILE) {
+ if (hwif->data_phase == TASKFILE_IN && (stat & DRQ_STAT) &&
+ (hwif->host_flags & IDE_HFLAG_ERROR_STOPS_FIFO) == 0)
+ try_to_flush_leftover_data(drive);
+ }
+
err = ide_dump_status(drive, msg, stat);
- if ((rq = HWGROUP(drive)->rq) == NULL)
+ if (rq == NULL)
return ide_stopped;
/* retry only "normal" I/O: */
next prev parent reply other threads:[~2008-03-16 19:45 UTC|newest]
Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-05 5:03 Linux 2.6.25-rc4 Linus Torvalds
2008-03-05 8:09 ` FUJITA Tomonori
2008-03-05 16:46 ` Grant Grundler
2008-03-06 9:00 ` Ingo Molnar
2008-03-06 12:59 ` Jens Axboe
2008-03-06 13:06 ` Ingo Molnar
2008-03-06 13:12 ` Jens Axboe
2008-03-07 8:53 ` Ingo Molnar
2008-03-07 8:57 ` Jens Axboe
2008-03-07 9:02 ` Ingo Molnar
2008-03-07 9:59 ` Paul Mackerras
2008-03-07 15:20 ` Valdis.Kletnieks
2008-03-08 23:36 ` Pavel Machek
2008-03-09 11:59 ` Ingo Molnar
2008-03-09 12:55 ` Andi Kleen
2008-03-10 10:10 ` Pavel Machek
2008-03-10 11:52 ` Andi Kleen
2008-03-06 13:38 ` Bartlomiej Zolnierkiewicz
2008-03-06 13:33 ` Ingo Molnar
2008-03-06 14:06 ` Bartlomiej Zolnierkiewicz
2008-03-06 13:55 ` Jens Axboe
2008-03-06 21:17 ` Anders Eriksson
2008-03-07 8:48 ` Jens Axboe
2008-03-07 22:04 ` Anders Eriksson
2008-03-08 20:22 ` Linus Torvalds
2008-03-08 21:05 ` Anders Eriksson
2008-03-10 8:55 ` Anders Eriksson
2008-03-10 12:36 ` Bartlomiej Zolnierkiewicz
2008-03-10 13:10 ` Rafael J. Wysocki
2008-03-10 14:04 ` Bartlomiej Zolnierkiewicz
2008-03-16 14:01 ` Anders Eriksson
2008-03-16 14:29 ` Bartlomiej Zolnierkiewicz
2008-03-16 14:29 ` Anders Eriksson
2008-03-16 15:14 ` Bartlomiej Zolnierkiewicz
2008-03-16 16:56 ` Linus Torvalds
2008-03-16 17:13 ` Linus Torvalds
2008-03-16 18:18 ` Anders Eriksson
2008-03-16 18:07 ` Bartlomiej Zolnierkiewicz
2008-03-16 18:13 ` Linus Torvalds
2008-03-16 18:36 ` Bartlomiej Zolnierkiewicz
2008-03-16 19:08 ` Anders Eriksson
2008-03-16 18:56 ` Alan Cox
2008-03-16 19:39 ` Linus Torvalds
2008-03-16 20:31 ` Alan Cox
2008-03-16 21:06 ` Linus Torvalds
2008-03-21 15:03 ` Mark Lord
2008-03-21 14:49 ` Alan Cox
2008-03-16 19:54 ` Bartlomiej Zolnierkiewicz [this message]
2008-03-16 22:59 ` Anders Eriksson
2008-03-16 23:27 ` Linus Torvalds
2008-03-17 21:09 ` Anders Eriksson
2008-03-17 22:52 ` Linus Torvalds
2008-03-18 0:18 ` Anders Eriksson
2008-03-18 13:03 ` Bartlomiej Zolnierkiewicz
2008-03-18 13:32 ` Anders Eriksson
2008-03-18 14:48 ` Bartlomiej Zolnierkiewicz
2008-03-18 15:10 ` Anders Eriksson
2008-03-18 15:41 ` Linus Torvalds
2008-03-18 16:30 ` Anders Eriksson
2008-03-18 16:47 ` Linus Torvalds
2008-03-18 21:02 ` Anders Eriksson
2008-03-19 1:21 ` Bartlomiej Zolnierkiewicz
2008-03-19 1:28 ` Linus Torvalds
2008-03-19 3:24 ` Bartlomiej Zolnierkiewicz
2008-03-19 3:28 ` Linus Torvalds
2008-03-19 3:56 ` Linus Torvalds
2008-03-19 4:03 ` Bartlomiej Zolnierkiewicz
2008-03-19 4:48 ` Linus Torvalds
2008-03-19 11:14 ` Bartlomiej Zolnierkiewicz
2008-03-16 18:23 ` Anders Eriksson
2008-03-16 18:26 ` Bartlomiej Zolnierkiewicz
2008-03-16 18:25 ` Anders Eriksson
2008-03-17 7:23 ` Jens Axboe
2008-03-16 18:44 ` Alan Cox
2008-03-10 13:19 ` Anders Eriksson
2008-03-10 13:56 ` Bartlomiej Zolnierkiewicz
2008-03-16 18:59 ` Andrey Borzenkov
2008-03-07 10:08 ` [patch] drivers/char/esp.c: fix bootup lockup (was: Re: Linux 2.6.25-rc4) Ingo Molnar
2008-03-09 13:41 ` [patch] drivers/char/esp.c: fix bootup lockup Jiri Slaby
2008-03-09 22:49 ` Rafael J. Wysocki
2008-03-09 23:04 ` Jiri Slaby
-- strict thread matches above, loose matches on Subject: below --
2008-03-05 22:30 Linux 2.6.25-rc4 Jonathan McDowell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200803162054.04757.bzolnier@gmail.com \
--to=bzolnier@gmail.com \
--cc=aeriksson@fastmail.fm \
--cc=jens.axboe@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rjw@sisk.pl \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.