From: Mika Westerberg <mika.westerberg@linux.intel.com>
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>,
Lukas Wunner <lukas@wunner.de>,
Keith Busch <keith.busch@intel.com>,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Frederick Lawler <fred@fredlawl.com>,
"Gustavo A . R . Silva" <gustavo@embeddedor.com>,
Sinan Kaya <okaya@kernel.org>,
Kai-Heng Feng <kai.heng.feng@canonical.com>,
linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 2/2] PCI: pciehp: Prevent deadlock on disconnect
Date: Thu, 24 Oct 2019 12:38:03 +0300 [thread overview]
Message-ID: <20191024093803.GU2819@lahna.fi.intel.com> (raw)
In-Reply-To: <20191023075248.GO2819@lahna.fi.intel.com>
On Wed, Oct 23, 2019 at 10:52:53AM +0300, Mika Westerberg wrote:
> > Shouldn't we check for slot_status being an error response (~0)
> > instead of looking for PCIBIOS_DEVICE_NOT_FOUND? There are 7 RsvdP
> > bits in Slot Status, so ~0 is not a valid value for the register.
> >
> > All 16 bits of Link Status are defined, but ~0 is still an invalid
> > value because the Current Link Speed and Negotiated Link Width fields
> > only define a few valid encodings.
>
> Indeed that's a good point. I'll try that.
Just checking if I understand correctly what you are suggesting.
Currently we use pcie_capability_read_word() and check the return value.
If the device is gone it returns an error and resets *val to 0. That
only works if pci_dev_is_disconnected() is true so we would need to do
something like below.
pciehp_check_link_active():
ret = pcie_capability_read_word(pdev, PCI_EXP_LNKSTA, &lnk_status);
if (ret == PCIBIOS_DEVICE_NOT_FOUND || lnk_status == (u16)~0)
return -ENODEV;
Or you mean that we check only for ~0 in which case we either need to
use pci_read_config_word() directly here or modify pcie_capability_read_word()
return ~0 instead of clearing it?
next prev parent reply other threads:[~2019-10-24 9:38 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-12 14:31 [PATCH v2 1/2] PCI: pciehp: Do not disable interrupt twice on suspend Mika Westerberg
2019-08-12 14:31 ` [PATCH v2 2/2] PCI: pciehp: Prevent deadlock on disconnect Mika Westerberg
2019-08-19 2:28 ` Sinan Kaya
2019-08-19 8:56 ` Mika Westerberg
2019-08-19 12:28 ` Sinan Kaya
2019-09-23 5:34 ` Lukas Wunner
2019-09-23 8:12 ` Mika Westerberg
2019-09-23 8:28 ` Lukas Wunner
2019-09-23 8:28 ` Mika Westerberg
2019-10-18 7:10 ` Kai-Heng Feng
2019-10-22 23:00 ` Bjorn Helgaas
2019-10-23 7:52 ` Mika Westerberg
2019-10-24 9:38 ` Mika Westerberg [this message]
2019-10-24 17:11 ` Bjorn Helgaas
2019-09-19 6:42 ` [PATCH v2 1/2] PCI: pciehp: Do not disable interrupt twice on suspend Mika Westerberg
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=20191024093803.GU2819@lahna.fi.intel.com \
--to=mika.westerberg@linux.intel.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=fred@fredlawl.com \
--cc=gustavo@embeddedor.com \
--cc=helgaas@kernel.org \
--cc=kai.heng.feng@canonical.com \
--cc=keith.busch@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lukas@wunner.de \
--cc=okaya@kernel.org \
--cc=rjw@rjwysocki.net \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.