On Fri, Apr 7, 2017 at 9:55 PM, Sinan Kaya <okaya@xxxxxxxxxxxxxx> wrote: > Split pci_aspm_init() body into pci_aspm_init_upstream() > and pci_aspm_init_downstream() for bridge and endpoint > specific code behavior. > > Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=194895 > Signed-off-by: Sinan Kaya <okaya@xxxxxxxxxxxxxx> > --- > drivers/pci/pcie/aspm.c | 15 ++++++++++++++- > 1 file changed, 14 insertions(+), 1 deletion(-) > > diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c > index dc36717..a80d64b 100644 > --- a/drivers/pci/pcie/aspm.c > +++ b/drivers/pci/pcie/aspm.c > @@ -826,6 +826,16 @@ static struct pcie_link_state *alloc_pcie_link_state(struct pci_dev *pdev) > return link; > } > > +static int pci_aspm_init_downstream(struct pci_dev *pdev) > +{ > + return 0; > +} > + > +static int pci_aspm_init_upstream(struct pci_dev *pdev) > +{ > + return 0; > +} > + > /* > * pci_aspm_init: Initiate PCI express link state. > * It is called from device_add for every single pci device. > @@ -833,7 +843,10 @@ static struct pcie_link_state *alloc_pcie_link_state(struct pci_dev *pdev) > */ > int pci_aspm_init(struct pci_dev *pdev) > { > - return 0; > + if (!pdev->has_secondary_link) > + return pci_aspm_init_downstream(pdev); > + > + return pci_aspm_init_upstream(pdev); > } Nit: if (x_flag()) return x(); return y(); May be better than if (!x_flag) return y(); return x(); > > /* > -- > 1.9.1 >