From: Tejun Heo <htejun@gmail.com>
To: Paul Mundt <lethal@linux-sh.org>, Tejun Heo <htejun@gmail.com>,
Jeff Garzik <jgarzik@pobox.com>,
linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] ata: pata_platform: Disable prereset logic.
Date: Wed, 23 May 2007 11:29:37 +0200 [thread overview]
Message-ID: <46540981.9080603@gmail.com> (raw)
In-Reply-To: <20070523083026.GA29851@linux-sh.org>
[-- Attachment #1: Type: text/plain, Size: 1010 bytes --]
Paul Mundt wrote:
> On Wed, May 23, 2007 at 10:07:08AM +0200, Tejun Heo wrote:
>> Paul Mundt wrote:
>>> On a number of boards the current prereset logic seems to misbehave:
>>>
>>> scsi0 : pata_platform
>>> ata1: PATA max PIO0 cmd 0xb06001f0 ctl 0xb06003f6 bmdma 0x00000000 irq 0
>>> ata1: device not ready (errno=-19), forcing hardreset
>>> ata1: BUG: prereset() requested invalid reset type
>>>
>>> This triggers when there is no card inserted in the slot.
>>>
>>> Simply disabling the prereset gets rid of this, and doesn't seem to cause
>>> any problems for either PCMCIA or CF cards when they're actually present.
>> NACK. The BUG printking needs fixing but you can't just kill
>> prereset(). Did it work properly on 2.6.21.1? Can you modify
>> ata_wait_ready() such that it prints out the status value while waiting?
>>
> ata_wait_ready() works fine, it reports 0xff immediately (and this is
> what I would expect when there is no card inserted).
Does the attached patch fix your problem?
--
tejun
[-- Attachment #2: patch --]
[-- Type: text/plain, Size: 525 bytes --]
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index a6de57e..79f2175 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -3368,7 +3368,7 @@ int ata_std_prereset(struct ata_port *ap
*/
if (!(ap->flags & ATA_FLAG_SKIP_D2H_BSY) && !ata_port_offline(ap)) {
rc = ata_wait_ready(ap, deadline);
- if (rc) {
+ if (rc && rc != -ENODEV) {
ata_port_printk(ap, KERN_WARNING, "device not ready "
"(errno=%d), forcing hardreset\n", rc);
ehc->i.action |= ATA_EH_HARDRESET;
next prev parent reply other threads:[~2007-05-23 9:30 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-23 6:44 [PATCH] ata: pata_platform: Disable prereset logic Paul Mundt
2007-05-23 8:07 ` Tejun Heo
2007-05-23 8:30 ` Paul Mundt
2007-05-23 9:29 ` Tejun Heo [this message]
2007-05-23 9:48 ` Paul Mundt
2007-05-23 9:58 ` [PATCH] libata: -ENODEV during prereset isn't an error Tejun Heo
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=46540981.9080603@gmail.com \
--to=htejun@gmail.com \
--cc=jgarzik@pobox.com \
--cc=lethal@linux-sh.org \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.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 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.