From: Bjorn Helgaas <bhelgaas@google.com>
To: Yijing Wang <wangyijing@huawei.com>
Cc: Mika Westerberg <mika.westerberg@linux.intel.com>,
Yinghai Lu <yinghai@kernel.org>,
Andreas Noever <andreas.noever@gmail.com>,
Matthew Garrett <mjg59@srcf.ucam.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"Rafael J. Wysocki" <rjw@sisk.pl>,
"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Subject: Re: [3.11.4] Thunderbolt/PCI unplug oops in pci_pme_list_scan
Date: Tue, 19 Nov 2013 10:18:50 -0700 [thread overview]
Message-ID: <20131119171850.GA4261@google.com> (raw)
In-Reply-To: <528AC4F2.40708@huawei.com>
On Tue, Nov 19, 2013 at 09:54:58AM +0800, Yijing Wang wrote:
> > The pcie_portdrv .probe() method calls pci_enable_device() once, in
> > pcie_port_device_register(), but the .remove() method calls
> > pci_disable_device() twice, in pcie_port_device_remove() and in
> > pcie_portdrv_remove().
> >
> > That causes a "disabling already-disabled device" warning when removing a
> > PCIe port device. This happens all the time when removing Thunderbolt
> > devices, but is also easy to reproduce with, e.g.,
> > "echo 0000:00:1c.3 > /sys/bus/pci/drivers/pcieport/unbind"
> >
> > This patch removes the disable from pcie_portdrv_remove().
> >
> > [bhelgaas: changelog, tag for stable]
> > Reported-by: David Bulkow <David.Bulkow@stratus.com>
> > Reported-by: Mika Westerberg <mika.westerberg@linux.intel.com>
> > Signed-off-by: Yinghai Lu <yinghai@kernel.org>
> > Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
> > CC: stable@vger.kernel.org # v2.6.32+
>
> Hi Bjorn,
> This issue in X86 seems to be introduced after commit 928bea9 "PCI: Delay enabling bridges until they're needed"
> So this patch needs to back port to 2.6.32+ ?
928bea9 might have made it more visible, but the underlying problem is that
we enable the device once in the probe path, and disable it twice in the
remove path. That problem exists in 2.6.32.61:
pcie_portdrv_probe # .probe() method
pcie_port_device_register
pci_enable_device <-- enable
pcie_portdrv_remove # .remove() method
pcie_port_device_remove
pci_disable_device <-- disable #1
pci_disable_device <-- disable #2
Bjorn
next prev parent reply other threads:[~2013-11-19 17:18 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-14 22:47 [3.11.4] Thunderbolt/PCI unplug oops in pci_pme_list_scan Andreas Noever
2013-10-14 23:50 ` Bjorn Helgaas
2013-10-15 2:44 ` Matthew Garrett
2013-10-16 20:21 ` Bjorn Helgaas
2013-10-17 13:59 ` Andreas Noever
2013-10-23 3:32 ` Bjorn Helgaas
2013-10-24 5:53 ` Yinghai Lu
2013-10-25 3:33 ` Bjorn Helgaas
2013-10-25 5:13 ` Yinghai Lu
2013-10-25 5:28 ` Yinghai Lu
2013-10-25 23:01 ` Bjorn Helgaas
2013-10-27 0:39 ` Andreas Noever
2013-11-15 11:52 ` Mika Westerberg
2013-11-19 1:33 ` Bjorn Helgaas
2013-11-19 1:54 ` Yijing Wang
2013-11-19 17:18 ` Bjorn Helgaas [this message]
2013-11-20 1:14 ` Yijing Wang
2013-11-20 1:20 ` Bjorn Helgaas
2013-11-20 1:39 ` Yijing Wang
2013-11-19 10:06 ` Mika Westerberg
2013-10-30 7:57 ` Yijing Wang
2013-10-31 6:48 ` Yinghai Lu
2013-10-23 23:53 ` Bjorn Helgaas
2013-10-29 3:30 ` Bjorn Helgaas
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=20131119171850.GA4261@google.com \
--to=bhelgaas@google.com \
--cc=andreas.noever@gmail.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=mika.westerberg@linux.intel.com \
--cc=mjg59@srcf.ucam.org \
--cc=rjw@sisk.pl \
--cc=wangyijing@huawei.com \
--cc=yinghai@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).