[PATCH 4.4 42/51] PCI: altera: Check link status before retrain link

From: Greg Kroah-Hartman
Date: Tue Jan 15 2019 - 11:38:26 EST


4.4-stable review patch. If anyone has any objections, please let me know.

------------------

From: Ley Foon Tan <lftan@xxxxxxxxxx>

commit c622032ebc538cb3869c312ae3ad235a99da84b6 upstream.

Check the link status before retraining. If the link is not up, don't
bother trying to retrain it.

[bhelgaas: split code move to separate patch, changelog]
Signed-off-by: Ley Foon Tan <lftan@xxxxxxxxxx>
Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Cc: Claudius Heine <claudius.heine.ext@xxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

---
drivers/pci/host/pcie-altera.c | 4 ++++
1 file changed, 4 insertions(+)

--- a/drivers/pci/host/pcie-altera.c
+++ b/drivers/pci/host/pcie-altera.c
@@ -100,6 +100,10 @@ static bool altera_pcie_link_is_up(struc
static void altera_pcie_retrain(struct pci_dev *dev)
{
u16 linkcap, linkstat;
+ struct altera_pcie *pcie = dev->bus->sysdata;
+
+ if (!altera_pcie_link_is_up(pcie))
+ return;

/*
* Set the retrain bit if the PCIe rootport support > 2.5GB/s, but