All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] PCI: altera: Retrain link in rootport mode only
@ 2016-08-15  8:36 Ley Foon Tan
  2016-08-18 20:18 ` Bjorn Helgaas
  0 siblings, 1 reply; 3+ messages in thread
From: Ley Foon Tan @ 2016-08-15  8:36 UTC (permalink / raw)
  To: Bjorn Helgaas; +Cc: linux-kernel, linux-pci, Ley Foon Tan, Ley Foon Tan

Altera PCIe IP can be configured as rootport or device and they might have
same vendor ID. It will cause the system hang issue if Altera PCIe is in
endpoint mode and work with other PCIe rootport that from other vendors.
So, add the rootport mode checking in link retrain fixup function.

Signed-off-by: Ley Foon Tan <lftan@altera.com>
---
 drivers/pci/host/pcie-altera.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/pci/host/pcie-altera.c b/drivers/pci/host/pcie-altera.c
index 58eef99..6477738 100644
--- a/drivers/pci/host/pcie-altera.c
+++ b/drivers/pci/host/pcie-altera.c
@@ -139,6 +139,9 @@ static void altera_pcie_retrain(struct pci_dev *dev)
 	u16 linkcap, linkstat;
 	struct altera_pcie *pcie = dev->bus->sysdata;
 
+	if (!pci_is_root_bus(dev->bus))
+		return;
+
 	if (!altera_pcie_link_is_up(pcie))
 		return;
 
-- 
1.8.2.1

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] PCI: altera: Retrain link in rootport mode only
  2016-08-15  8:36 [PATCH] PCI: altera: Retrain link in rootport mode only Ley Foon Tan
@ 2016-08-18 20:18 ` Bjorn Helgaas
  2016-08-19  7:54   ` Ley Foon Tan
  0 siblings, 1 reply; 3+ messages in thread
From: Bjorn Helgaas @ 2016-08-18 20:18 UTC (permalink / raw)
  To: Ley Foon Tan; +Cc: Bjorn Helgaas, linux-kernel, linux-pci, Ley Foon Tan

On Mon, Aug 15, 2016 at 04:36:19PM +0800, Ley Foon Tan wrote:
> Altera PCIe IP can be configured as rootport or device and they might have
> same vendor ID. It will cause the system hang issue if Altera PCIe is in
> endpoint mode and work with other PCIe rootport that from other vendors.
> So, add the rootport mode checking in link retrain fixup function.
> 
> Signed-off-by: Ley Foon Tan <lftan@altera.com>
> ---
>  drivers/pci/host/pcie-altera.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/pci/host/pcie-altera.c b/drivers/pci/host/pcie-altera.c
> index 58eef99..6477738 100644
> --- a/drivers/pci/host/pcie-altera.c
> +++ b/drivers/pci/host/pcie-altera.c
> @@ -139,6 +139,9 @@ static void altera_pcie_retrain(struct pci_dev *dev)
>  	u16 linkcap, linkstat;
>  	struct altera_pcie *pcie = dev->bus->sysdata;
>  
> +	if (!pci_is_root_bus(dev->bus))
> +		return;

It seems like it would be more direct to check for
"pci_pcie_type(dev) != PCI_EXP_TYPE_ROOT_PORT"?

>  	if (!altera_pcie_link_is_up(pcie))
>  		return;
>  
> -- 
> 1.8.2.1
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] PCI: altera: Retrain link in rootport mode only
  2016-08-18 20:18 ` Bjorn Helgaas
@ 2016-08-19  7:54   ` Ley Foon Tan
  0 siblings, 0 replies; 3+ messages in thread
From: Ley Foon Tan @ 2016-08-19  7:54 UTC (permalink / raw)
  To: Bjorn Helgaas; +Cc: Bjorn Helgaas, linux-kernel, linux-pci

On Fri, Aug 19, 2016 at 4:18 AM, Bjorn Helgaas <helgaas@kernel.org> wrote:
>
> On Mon, Aug 15, 2016 at 04:36:19PM +0800, Ley Foon Tan wrote:
> > Altera PCIe IP can be configured as rootport or device and they might have
> > same vendor ID. It will cause the system hang issue if Altera PCIe is in
> > endpoint mode and work with other PCIe rootport that from other vendors.
> > So, add the rootport mode checking in link retrain fixup function.
> >
> > Signed-off-by: Ley Foon Tan <lftan@altera.com>
> > ---
> >  drivers/pci/host/pcie-altera.c | 3 +++
> >  1 file changed, 3 insertions(+)
> >
> > diff --git a/drivers/pci/host/pcie-altera.c b/drivers/pci/host/pcie-altera.c
> > index 58eef99..6477738 100644
> > --- a/drivers/pci/host/pcie-altera.c
> > +++ b/drivers/pci/host/pcie-altera.c
> > @@ -139,6 +139,9 @@ static void altera_pcie_retrain(struct pci_dev *dev)
> >       u16 linkcap, linkstat;
> >       struct altera_pcie *pcie = dev->bus->sysdata;
> >
> > +     if (!pci_is_root_bus(dev->bus))
> > +             return;
>
> It seems like it would be more direct to check for
> "pci_pcie_type(dev) != PCI_EXP_TYPE_ROOT_PORT"?
Okay, will change in next version.

>
> >       if (!altera_pcie_link_is_up(pcie))
> >               return;
> >
> > --
> > 1.8.2.1
> >

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-08-19  7:56 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-15  8:36 [PATCH] PCI: altera: Retrain link in rootport mode only Ley Foon Tan
2016-08-18 20:18 ` Bjorn Helgaas
2016-08-19  7:54   ` Ley Foon Tan

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.