[PATCH] drivers/pci/hotplug: Handle presence detection change properly
Greg KH
gregkh at linuxfoundation.org
Tue Dec 20 20:37:09 AEDT 2016
On Tue, Dec 20, 2016 at 05:49:33PM +1100, Gavin Shan wrote:
> The surprise hotplug is driven by interrupt in PowerNV PCI hotplug
> driver. In the interrupt handler, pnv_php_interrupt(), we bail when
> pnv_pci_get_presence_state() returns zero wrongly. It causes the
> presence change event is always ignored incorrectly.
>
> This fixes the issue by bailing on error (non-zero value) returned
> from pnv_pci_get_presence_state().
>
> Fixes: 360aebd85a4 ("drivers/pci/hotplug: Support surprise hotplug in powernv driver")
> Cc: stable at vger.kernel.org #v4.9+
> Reported-by: Hank Chang <hankmax0000 at gmail.com>
> Signed-off-by: Gavin Shan <gwshan at linux.vnet.ibm.com>
> Tested-by: Willie Liauw <williel at supermicro.com.tw>
> ---
> drivers/pci/hotplug/pnv_php.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/pci/hotplug/pnv_php.c b/drivers/pci/hotplug/pnv_php.c
> index 56efaf7..38a2309 100644
> --- a/drivers/pci/hotplug/pnv_php.c
> +++ b/drivers/pci/hotplug/pnv_php.c
> @@ -707,8 +707,12 @@ static irqreturn_t pnv_php_interrupt(int irq, void *data)
> added = !!(lsts & PCI_EXP_LNKSTA_DLLLA);
> } else if (sts & PCI_EXP_SLTSTA_PDC) {
> ret = pnv_pci_get_presence_state(php_slot->id, &presence);
> - if (!ret)
> + if (ret) {
> + dev_warn(&pdev->dev, "PCI slot [%s] error %d handling PDC event (0x%04x)\n",
> + php_slot->name, ret, sts);
What can a user do with this warning?
More information about the Linuxppc-dev
mailing list