From: Tejun Heo <htejun@gmail.com>
To: Bruce Stenning <b.stenning@indigovision.com>
Cc: Mark Lord <kernel@teksavvy.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-ide@vger.kernel.org" <linux-ide@vger.kernel.org>
Subject: Re: sata_mv port lockup on hotplug (kernel 2.6.38.2)
Date: Sat, 30 Apr 2011 16:01:09 +0200 [thread overview]
Message-ID: <20110430140109.GJ29280@htj.dyndns.org> (raw)
In-Reply-To: <C1438B59050E1B4C9482FF3266AD6BA32C77554C91@gretna.indigovision.com>
Hello,
On Tue, Apr 26, 2011 at 05:05:45PM +0100, Bruce Stenning wrote:
> > Yeah, it makes sense. Hmm... it seems I wasn't thinking straight when
> > I added that work around. Not sure how to fix it properly at this
> > moment. I'll think about it. Can you please keep me posted if you
> > find something while testing?
>
> I'm away for two and a bit weeks so I'm not sure what progress (if any)
> I will make during that time. But yes, I shall certainly keep you posted
> as soon as I find anything else. Thank you very much for your inputs.
So, here's the patch which should fix the problem you're seeing and
doesn't break the controllers which generate spurious hotplug events
during reset. Please test this when you come back and let me know the
result.
Thank you.
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
index f26f2fe..a57845d 100644
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -2802,10 +2802,11 @@ int ata_eh_reset(struct ata_link *link, int classify,
}
/*
- * Some controllers can't be frozen very well and may set
- * spuruious error conditions during reset. Clear accumulated
- * error information. As reset is the final recovery action,
- * nothing is lost by doing this.
+ * Some controllers can't be frozen very well and may set spuruious
+ * error conditions during reset. Clear accumulated error
+ * information and re-thaw the port if frozen. As reset is the
+ * final recovery action and we cross check link onlineness against
+ * device classification later, no hotplug event is lost by this.
*/
spin_lock_irqsave(link->ap->lock, flags);
memset(&link->eh_info, 0, sizeof(link->eh_info));
@@ -2814,6 +2815,9 @@ int ata_eh_reset(struct ata_link *link, int classify,
ap->pflags &= ~ATA_PFLAG_EH_PENDING;
spin_unlock_irqrestore(link->ap->lock, flags);
+ if (ap->pflags & ATA_PFLAG_FROZEN)
+ ata_eh_thaw_port(ap);
+
/*
* Make sure onlineness and classification result correspond.
* Hotplug could have happened during reset and some
next prev parent reply other threads:[~2011-04-30 14:01 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <C1438B59050E1B4C9482FF3266AD6BA32C7493557A@gretna.indigovision.com>
[not found] ` <C1438B59050E1B4C9482FF3266AD6BA32C7493559F@gretna.indigovision.com>
2011-04-06 21:00 ` sata_mv port lockup on hotplug (kernel 2.6.38.2) Alejandro Riveira Fernández
[not found] ` <4D9CD275.9000002@teksavvy.com>
2011-04-08 12:43 ` Bruce Stenning
2011-04-09 0:48 ` Mark Lord
2011-04-12 10:30 ` Bruce Stenning
2011-04-12 14:07 ` Mark Lord
2011-04-12 14:55 ` Mark Lord
2011-04-23 0:56 ` Tejun Heo
2011-04-25 11:07 ` Bruce Stenning
2011-04-25 11:30 ` Tejun Heo
2011-04-26 18:27 ` Mark Lord
2011-04-25 14:54 ` Bruce Stenning
2011-04-25 16:22 ` Tejun Heo
2011-04-26 13:13 ` Bruce Stenning
2011-04-26 13:50 ` Tejun Heo
2011-04-26 15:41 ` Bruce Stenning
2011-04-26 15:52 ` Tejun Heo
2011-04-26 16:05 ` Bruce Stenning
2011-04-30 14:01 ` Tejun Heo [this message]
2011-05-17 15:30 ` Bruce Stenning
2011-05-25 9:41 ` Tejun Heo
2011-05-25 13:36 ` Bruce Stenning
2011-05-25 22:27 ` Mark Lord
2011-05-30 13:07 ` Bruce Stenning
2011-05-31 2:04 ` Mark Lord
2011-06-10 12:28 ` Mark Lord
2011-06-10 14:01 ` Tejun Heo
2011-06-10 17:32 ` Mark Lord
2011-06-10 17:39 ` Jeff Garzik
2011-06-10 20:49 ` Mark Lord
2011-06-10 21:20 ` Jeff Garzik
2011-06-11 12:19 ` Tejun Heo
2011-06-12 17:10 ` Mark Lord
2011-06-13 10:48 ` Tejun Heo
2011-08-29 15:49 ` Bruce Stenning
2011-09-02 1:13 ` Tejun Heo
2011-09-02 16:22 ` Bruce Stenning
2011-09-06 3:45 ` Tejun Heo
2011-09-06 12:19 ` Bruce Stenning
2011-09-06 16:33 ` Tejun Heo
2011-09-06 16:42 ` Tejun Heo
2011-09-07 12:09 ` Bruce Stenning
2011-09-08 1:16 ` Tejun Heo
2011-09-06 12:26 ` Bruce Stenning
2011-09-06 14:40 ` Bruce Stenning
2011-09-06 15:22 ` Bruce Stenning
2011-04-26 18:37 ` Mark Lord
2011-04-13 15:10 ` Mark Lord
2011-04-13 16:13 ` Bruce Stenning
2011-04-14 16:50 ` Bruce Stenning
2011-04-15 0:28 ` Mark Lord
2011-04-15 13:21 ` Bruce Stenning
2011-04-15 15:36 ` Mark Lord
2011-04-18 10:30 ` Bruce Stenning
2011-04-23 0:56 ` Tejun Heo
2011-04-15 3:15 ` Mikael Abrahamsson
2011-04-15 3:32 ` Mark Lord
2011-04-15 7:43 ` Mikael Abrahamsson
2011-04-15 12:35 ` Mark Lord
2011-04-15 14:04 ` Mikael Abrahamsson
2011-04-15 15:30 ` Mark Lord
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=20110430140109.GJ29280@htj.dyndns.org \
--to=htejun@gmail.com \
--cc=b.stenning@indigovision.com \
--cc=kernel@teksavvy.com \
--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 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).