Message ID | 20200804194052.193272-10-sean.v.kelley@intel.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | Add RCEC handling to PCI/AER | expand |
On Tue, 4 Aug 2020 12:40:52 -0700 Sean V Kelley <sean.v.kelley@intel.com> wrote: > From: Qiuxu Zhuo <qiuxu.zhuo@intel.com> > > The Root Complex Event Collectors(RCEC) appear as peers to Root Ports > and also have the AER capability. So add RCEC support to the current AER > error injection driver. > > Co-developed-by: Sean V Kelley <sean.v.kelley@intel.com> > Signed-off-by: Qiuxu Zhuo <qiuxu.zhuo@intel.com> > Signed-off-by: Sean V Kelley <sean.v.kelley@intel.com> Silly English subtlety inline. > --- > drivers/pci/pcie/aer_inject.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/pci/pcie/aer_inject.c b/drivers/pci/pcie/aer_inject.c > index c2cbf425afc5..2077dc826fdf 100644 > --- a/drivers/pci/pcie/aer_inject.c > +++ b/drivers/pci/pcie/aer_inject.c > @@ -333,8 +333,11 @@ static int aer_inject(struct aer_error_inj *einj) > if (!dev) > return -ENODEV; > rpdev = pcie_find_root_port(dev); > + /* If Root port not found, try to find an RCEC */ > + if (!rpdev) > + rpdev = dev->rcec; > if (!rpdev) { > - pci_err(dev, "Root port not found\n"); > + pci_err(dev, "Root port or RCEC not found\n"); That is a bit confusing, could be RP | !RCEC "Neither root port nor RCEC found\n" perhaps? > ret = -ENODEV; > goto out_put; > }
On 5 Aug 2020, at 10:54, Jonathan Cameron wrote: > On Tue, 4 Aug 2020 12:40:52 -0700 > Sean V Kelley <sean.v.kelley@intel.com> wrote: > >> From: Qiuxu Zhuo <qiuxu.zhuo@intel.com> >> >> The Root Complex Event Collectors(RCEC) appear as peers to Root Ports >> and also have the AER capability. So add RCEC support to the current AER >> error injection driver. >> >> Co-developed-by: Sean V Kelley <sean.v.kelley@intel.com> >> Signed-off-by: Qiuxu Zhuo <qiuxu.zhuo@intel.com> >> Signed-off-by: Sean V Kelley <sean.v.kelley@intel.com> > > Silly English subtlety inline. > >> --- >> drivers/pci/pcie/aer_inject.c | 5 ++++- >> 1 file changed, 4 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/pci/pcie/aer_inject.c b/drivers/pci/pcie/aer_inject.c >> index c2cbf425afc5..2077dc826fdf 100644 >> --- a/drivers/pci/pcie/aer_inject.c >> +++ b/drivers/pci/pcie/aer_inject.c >> @@ -333,8 +333,11 @@ static int aer_inject(struct aer_error_inj *einj) >> if (!dev) >> return -ENODEV; >> rpdev = pcie_find_root_port(dev); >> + /* If Root port not found, try to find an RCEC */ >> + if (!rpdev) >> + rpdev = dev->rcec; >> if (!rpdev) { >> - pci_err(dev, "Root port not found\n"); >> + pci_err(dev, "Root port or RCEC not found\n"); > > That is a bit confusing, could be > > RP | !RCEC > > "Neither root port nor RCEC found\n" perhaps? Sounds good to me. Will correct. Thanks, Sean > > >> ret = -ENODEV; >> goto out_put; >> }
diff --git a/drivers/pci/pcie/aer_inject.c b/drivers/pci/pcie/aer_inject.c index c2cbf425afc5..2077dc826fdf 100644 --- a/drivers/pci/pcie/aer_inject.c +++ b/drivers/pci/pcie/aer_inject.c @@ -333,8 +333,11 @@ static int aer_inject(struct aer_error_inj *einj) if (!dev) return -ENODEV; rpdev = pcie_find_root_port(dev); + /* If Root port not found, try to find an RCEC */ + if (!rpdev) + rpdev = dev->rcec; if (!rpdev) { - pci_err(dev, "Root port not found\n"); + pci_err(dev, "Root port or RCEC not found\n"); ret = -ENODEV; goto out_put; }