From: Tejun Heo <tj@kernel.org>
To: Tim Blechmann <tim@klingt.org>
Cc: linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org
Subject: Re: 2.6.31-rc5 regression: hd don't show up
Date: Sun, 16 Aug 2009 11:54:29 +0900 [thread overview]
Message-ID: <4A8774E5.4070609@kernel.org> (raw)
In-Reply-To: <4A8559D7.6090405@klingt.org>
[-- Attachment #1: Type: text/plain, Size: 738 bytes --]
Tim Blechmann wrote:
>>> running 2.6.31-rc5 (7cb7beb31aa3d941833b6a6e553687422c31e4b6 to be
>>> exact), sometimes some hard disks don't show up.
>>>
>>> after booting, my root hd (sda) is mounted to /, while two other hds
>>> (sdb/sdc) are mounted as a user. sda is always present, but the other
>>> two sometimes don't show up (i.e. they are not listed in /dev/disk/, nor
>>> to they have a /dev/sdX link). with 2.6.29 and 2.6.30, all three disks
>>> are reported correctly.
>> Can you please attach boot logs of a successful and a failed boot?
>
> i have two files attached:
> - dmesg_good - all hds are available
> - dmesg_bad - on hd is missing
Can you please apply the attached patch and post the bad boot log?
Thanks.
--
tejun
[-- Attachment #2: nodev-debug.patch --]
[-- Type: text/x-patch, Size: 2330 bytes --]
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 072ba5e..10af11d 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -6060,7 +6060,7 @@ static void async_port_probe(void *data, async_cookie_t cookie)
ehi->probe_mask |= ATA_ALL_DEVICES;
ehi->action |= ATA_EH_RESET | ATA_EH_LPM;
- ehi->flags |= ATA_EHI_NO_AUTOPSY | ATA_EHI_QUIET;
+ ehi->flags |= ATA_EHI_NO_AUTOPSY/* | ATA_EHI_QUIET*/;
ap->pflags &= ~ATA_PFLAG_INITIALIZING;
ap->pflags |= ATA_PFLAG_LOADING;
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c
index bbbb1fa..c718d12 100644
--- a/drivers/ata/libata-sff.c
+++ b/drivers/ata/libata-sff.c
@@ -1998,6 +1998,9 @@ unsigned int ata_sff_dev_classify(struct ata_device *dev, int present,
if (r_err)
*r_err = err;
+ ata_dev_printk(dev, KERN_INFO, "XXX CLASSIFY TF %02x/%02x:%02x:%02x:%02x\n",
+ tf.command, tf.feature, tf.lbal, tf.lbam, tf.lbah);
+
/* see if device passed diags: continue and warn later */
if (err == 0)
/* diagnostic fail : do nothing _YET_ */
@@ -2006,11 +2009,14 @@ unsigned int ata_sff_dev_classify(struct ata_device *dev, int present,
/* do nothing */ ;
else if ((dev->devno == 0) && (err == 0x81))
/* do nothing */ ;
- else
+ else {
+ ata_dev_printk(dev, KERN_INFO, "XXX diag nodev\n");
return ATA_DEV_NONE;
+ }
/* determine if device is ATA or ATAPI */
class = ata_dev_classify(&tf);
+ ata_dev_printk(dev, KERN_INFO, "XXX ata_dev_classify=%d\n", class);
if (class == ATA_DEV_UNKNOWN) {
/* If the device failed diagnostic, it's likely to
@@ -2019,13 +2025,18 @@ unsigned int ata_sff_dev_classify(struct ata_device *dev, int present,
* device signature is invalid with diagnostic
* failure.
*/
- if (present && (dev->horkage & ATA_HORKAGE_DIAGNOSTIC))
+ if (present && (dev->horkage & ATA_HORKAGE_DIAGNOSTIC)) {
+ ata_dev_printk(dev, KERN_INFO, "XXX UNK && present -> ATA\n");
class = ATA_DEV_ATA;
- else
+ } else {
class = ATA_DEV_NONE;
+ ata_dev_printk(dev, KERN_INFO, "XXX UNK && !present -> NONE\n");
+ }
} else if ((class == ATA_DEV_ATA) &&
- (ap->ops->sff_check_status(ap) == 0))
+ (ap->ops->sff_check_status(ap) == 0)) {
class = ATA_DEV_NONE;
+ ata_dev_printk(dev, KERN_INFO, "XXX stat==0 -> NONE\n");
+ }
return class;
}
next prev parent reply other threads:[~2009-08-16 2:54 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-14 8:26 2.6.31-rc5 regression: hd don't show up Tim Blechmann
2009-08-14 9:17 ` Tejun Heo
2009-08-14 12:34 ` Tim Blechmann
2009-08-16 2:54 ` Tejun Heo [this message]
2009-08-16 10:05 ` Tim Blechmann
2009-08-27 8:38 ` Tejun Heo
2009-08-27 10:21 ` Tim Blechmann
2009-08-27 11:35 ` Tejun Heo
2009-08-28 11:04 ` Tim Blechmann
2009-08-31 7:39 ` Tejun Heo
2009-09-01 23:34 ` Tim Blechmann
2009-09-02 2:22 ` Tejun Heo
2009-09-02 9:12 ` Tim Blechmann
2009-09-03 14:07 ` Tejun Heo
2009-09-04 22:06 ` Tim Blechmann
2009-09-04 22:33 ` Maxim Levitsky
2009-09-05 0:12 ` Tejun Heo
2009-09-08 20:58 ` Tim Blechmann
2009-09-16 2:19 ` Tejun Heo
2009-09-16 5:39 ` Tejun Heo
2009-09-16 7:36 ` Tim Blechmann
2009-09-16 12:00 ` Tejun Heo
2009-09-25 4:20 ` Tejun Heo
2009-09-25 7:46 ` Tim Blechmann
2009-09-25 7:53 ` Tejun Heo
2009-09-25 11:47 ` Tim Blechmann
2009-09-25 13:21 ` Tejun Heo
2009-10-02 5:20 ` Tejun Heo
2009-10-02 7:30 ` Tim Blechmann
2009-10-02 8:59 ` Tejun Heo
2009-10-05 9:59 ` Tim Blechmann
2009-10-06 7:30 ` 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=4A8774E5.4070609@kernel.org \
--to=tj@kernel.org \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tim@klingt.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).