From patchwork Tue Feb 14 17:59:56 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavel Machek X-Patchwork-Id: 9572447 X-Patchwork-Delegate: bhelgaas@google.com Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 3512960573 for ; Tue, 14 Feb 2017 18:00:04 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3426228457 for ; Tue, 14 Feb 2017 18:00:04 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 25EF528456; Tue, 14 Feb 2017 18:00:04 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 78F7C28456 for ; Tue, 14 Feb 2017 18:00:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754748AbdBNSAA (ORCPT ); Tue, 14 Feb 2017 13:00:00 -0500 Received: from atrey.karlin.mff.cuni.cz ([195.113.26.193]:38037 "EHLO atrey.karlin.mff.cuni.cz" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752271AbdBNR77 (ORCPT ); Tue, 14 Feb 2017 12:59:59 -0500 Received: by atrey.karlin.mff.cuni.cz (Postfix, from userid 512) id 0ABA581678; Tue, 14 Feb 2017 18:59:56 +0100 (CET) Date: Tue, 14 Feb 2017 18:59:56 +0100 From: Pavel Machek To: Alan Stern , torvalds@linux-foundation.org Cc: kernel list , linux-usb@vger.kernel.org, gregkh@linuxfoundation.org, bhelgaas@google.com, linux-pci@vger.kernel.org Subject: Re: v4.10-rc8 (-rc6) boot regression on Intel desktop, does not boot after cold boots, boots after reboot Message-ID: <20170214175956.GA3587@amd> References: <20170203190414.GA3701@amd> <20170203205129.GA3791@amd> <20170203211854.GA3697@amd> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20170203211854.GA3697@amd> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Hi! > > > > Hmm. I moved keyboard between USB ports, and now 4.10-rc6 no longer > > > > boots. v4.6 works ok. Let me try with keyboard unplugged... no, I > > > > could not get it to work. I believe v4.9 and some v4.10-rc's worked, > > > > but I'll have to double check. > > > > > > But all the kernel versions worked when the keyboard was plugged into > > > its original USB port? > > > > Aha. So it looks difference is probably in "where is keyboard plugged > > in" but in "reboot" vs. "cold boot". I did not do a cold boot in quite > > a while :-(. > > > > Booting to grub, then hitting ctrl-alt-del is enough to make it work. Ouch. > > > > It happens with current Linus' tree. > > v4.10-rc6-feb3 : broken > v4.9 : ok > (v4.6 : ok) Hmm. It hangs during PCI fixups, and it hangs in v4.10-rc8, too. With debug patch below, I get ...1d.7: PCI fixup... pass 2 ...1d.7: PCI fixup... pass 3 ...1d.7: PCI fixup... pass 3 done ...followed by hang. So yes, it looks USB related. (Sometimes it hangs with some kind backtrace involving secondary CPU startup, unfortunately useful info is off screen at that point). Any ideas? Pavel diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 1800bef..060ad79 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -3510,6 +3510,8 @@ void pci_fixup_device(enum pci_fixup_pass pass, struct pci_dev *dev) { struct pci_fixup *start, *end; + dev_info(&dev->dev, "PCI fixup device %p, pass %d\n", dev, pass); + switch (pass) { case pci_fixup_early: start = __start_pci_fixups_early; @@ -3558,6 +3560,7 @@ void pci_fixup_device(enum pci_fixup_pass pass, struct pci_dev *dev) return; } pci_do_fixups(dev, start, end); + dev_info(&dev->dev, "PCI fixup device %p, pass %d, done\n", dev, pass); } EXPORT_SYMBOL(pci_fixup_device);