From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tejun Heo Subject: Re: Drives missing at boot Date: Mon, 05 Jul 2010 08:30:28 +0200 Message-ID: <4C317C04.20500@kernel.org> References: <4C2F5ECB.1040505@kernel.org> <4C2F61AB.9030806@kernel.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------010204010104060901070006" Return-path: Received: from hera.kernel.org ([140.211.167.34]:46484 "EHLO hera.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751697Ab0GEGab (ORCPT ); Mon, 5 Jul 2010 02:30:31 -0400 In-Reply-To: Sender: linux-ide-owner@vger.kernel.org List-Id: linux-ide@vger.kernel.org To: Mark Knecht Cc: Linux Kernel List , "linux-ide@vger.kernel.org" This is a multi-part message in MIME format. --------------010204010104060901070006 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 07/03/2010 06:42 PM, Mark Knecht wrote: > On Sat, Jul 3, 2010 at 9:13 AM, Tejun Heo wrote: >> Hello, >> >> On 07/03/2010 06:06 PM, Mark Knecht wrote: >>>> Can you please *attach* full logs of a successful boot and several >>>> failing boots? >>> >>> Certainly? Which logs? dmesg or something else? >> >> dmesg output preferably with printk timestamp enabled. Can you please apply the attached patch, reproduce the problem and post the kernel log? Thanks. -- tejun --------------010204010104060901070006 Content-Type: text/x-patch; name="resume-dbg.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="resume-dbg.patch" diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 2984e45..987ca80 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c @@ -3739,6 +3739,14 @@ int sata_link_resume(struct ata_link *link, const unsigned long *params, return rc; } while ((scontrol & 0xf0f) != 0x300 && --tries); + /* check once more */ + msleep(100); + if ((rc = sata_scr_read(link, SCR_CONTROL, &scontrol))) + return rc; + ata_link_printk(link, KERN_ERR, + "XXX SControl after resume = %X, tries=%d\n", + scontrol, ATA_LINK_RESUME_TRIES - tries + 1); + if ((scontrol & 0xf0f) != 0x300) { ata_link_printk(link, KERN_ERR, "failed to resume link (SControl %X)\n", @@ -6007,7 +6015,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; --------------010204010104060901070006--