From: Tejun Heo <tj@kernel.org>
To: benh@kernel.crashing.org
Cc: Pavel Machek <pavel@suse.cz>, Andreas Schwab <schwab@suse.de>,
kernel list <linux-kernel@vger.kernel.org>,
jgarzik@pobox.com,
IDE/ATA development list <linux-ide@vger.kernel.org>,
Trivial patch monkey <trivial@kernel.org>
Subject: Re: sata_svw data corruption, strange problems
Date: Mon, 23 Jun 2008 18:48:52 +0900 [thread overview]
Message-ID: <485F7184.1030907@kernel.org> (raw)
In-Reply-To: <1214211859.8011.250.camel@pasglop>
Benjamin Herrenschmidt wrote:
> Am I the only one to find Pavel variant almost as obscure as
> the original one ? :-)
>
> It should explain precisely what the workaround is. Ie. to start the
> DMA there instead of where it normally is started which is the
> bmdma_setup() function.
Well, it's better than the original which kind of directed the other
way. :-)
> BTW. Tejun, I suppose that usually starting DMA after issuing the
> command is a standard practice of legacy/sff type controllers ? Or it's
> just because that's how linux did it until now ?
It's how the standard says it should be programmed. Please take a look
at section 3 of the following document.
http://www.centrillium-it.com/Projects/idems100.pdf
It's a non-issue for PATA ones as the host is responsible for running
the clock and transferring data after the drive indicated readiness, so
the worst that can happen by starting the dma engine after issuing the
command is the drive waiting in ready state.
For SATA, it should work the same. The host should hold the transfer by
not acking the data transfer request (or prefetch the data if it feels
smart and brave). So, it's something sata_svw screwed up.
--
tejun
next prev parent reply other threads:[~2008-06-23 9:49 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20080617093602.GA28140@elf.ucw.cz>
2008-06-23 0:37 ` sata_svw data corruption, strange problems Tejun Heo
2008-06-23 8:20 ` Pavel Machek
2008-06-23 8:22 ` Tejun Heo
2008-06-23 8:39 ` Andreas Schwab
2008-06-23 8:53 ` Pavel Machek
2008-06-23 8:56 ` Tejun Heo
2008-06-23 9:01 ` Pavel Machek
2008-06-23 9:04 ` Benjamin Herrenschmidt
2008-06-23 9:26 ` Pavel Machek
2008-06-23 9:48 ` Tejun Heo [this message]
2008-06-23 9:42 ` Alan Cox
2008-06-23 10:23 ` Benjamin Herrenschmidt
2008-06-23 13:05 ` Tejun Heo
2008-06-27 6:41 ` Jeff Garzik
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=485F7184.1030907@kernel.org \
--to=tj@kernel.org \
--cc=benh@kernel.crashing.org \
--cc=jgarzik@pobox.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pavel@suse.cz \
--cc=schwab@suse.de \
--cc=trivial@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).