Message ID | 1612420127-6447-1-git-send-email-tanxiaofei@huawei.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [1/1] PCI/AER: Change to use helper pcie_aer_is_native() in some places | expand |
Hi Tan, This is very nice! Thank you for this. [...] > if (dev->aer_cap && pci_aer_available() && > - (pcie_ports_native || host->native_aer)) { > + pcie_aer_is_native(dev)) { > services |= PCIE_PORT_SERVICE_AER; [...] A suggestion. You could improve this even further, for example: if (pci_aer_available() && pcie_aer_is_native(dev)) { This is because the pcie_aer_is_native() function performs the dev->aer_cap check internally, so we could rely on it, and avoid checking the same thing twice. What do you think? Reviewed-by: Krzysztof Wilczyński <kw@linux.com> Krzysztof
Hi Krzysztof, On 2021/2/5 5:50, Krzysztof Wilczyński wrote: > Hi Tan, > > This is very nice! Thank you for this. > > [...] >> if (dev->aer_cap && pci_aer_available() && >> - (pcie_ports_native || host->native_aer)) { >> + pcie_aer_is_native(dev)) { >> services |= PCIE_PORT_SERVICE_AER; > [...] > > A suggestion. You could improve this even further, for example: > > if (pci_aer_available() && pcie_aer_is_native(dev)) { > > This is because the pcie_aer_is_native() function performs the > dev->aer_cap check internally, so we could rely on it, and avoid > checking the same thing twice. > > What do you think? > Yes, it's better, i will send v2 patch including this.thanks. > Reviewed-by: Krzysztof Wilczyński <kw@linux.com> > > Krzysztof > > . >
diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c index 77b0f2c..03212d0 100644 --- a/drivers/pci/pcie/aer.c +++ b/drivers/pci/pcie/aer.c @@ -1397,7 +1397,7 @@ static pci_ers_result_t aer_root_reset(struct pci_dev *dev) */ aer = root ? root->aer_cap : 0; - if ((host->native_aer || pcie_ports_native) && aer) { + if (pcie_aer_is_native(dev) && aer) { /* Disable Root's interrupt in response to error messages */ pci_read_config_dword(root, aer + PCI_ERR_ROOT_COMMAND, ®32); reg32 &= ~ROOT_PORT_INTR_ON_MESG_MASK; @@ -1417,7 +1417,7 @@ static pci_ers_result_t aer_root_reset(struct pci_dev *dev) pci_info(dev, "Root Port link has been reset (%d)\n", rc); } - if ((host->native_aer || pcie_ports_native) && aer) { + if (pcie_aer_is_native(dev) && aer) { /* Clear Root Error Status */ pci_read_config_dword(root, aer + PCI_ERR_ROOT_STATUS, ®32); pci_write_config_dword(root, aer + PCI_ERR_ROOT_STATUS, reg32); diff --git a/drivers/pci/pcie/err.c b/drivers/pci/pcie/err.c index 510f31f..1d6cfb9 100644 --- a/drivers/pci/pcie/err.c +++ b/drivers/pci/pcie/err.c @@ -237,7 +237,7 @@ pci_ers_result_t pcie_do_recovery(struct pci_dev *dev, * this status. In that case, the signaling device may not even be * visible to the OS. */ - if (host->native_aer || pcie_ports_native) { + if (pcie_aer_is_native(dev)) { pcie_clear_device_status(bridge); pci_aer_clear_nonfatal_status(bridge); } diff --git a/drivers/pci/pcie/portdrv_core.c b/drivers/pci/pcie/portdrv_core.c index e1fed664..1e6a690 100644 --- a/drivers/pci/pcie/portdrv_core.c +++ b/drivers/pci/pcie/portdrv_core.c @@ -222,7 +222,7 @@ static int get_port_device_capability(struct pci_dev *dev) #ifdef CONFIG_PCIEAER if (dev->aer_cap && pci_aer_available() && - (pcie_ports_native || host->native_aer)) { + pcie_aer_is_native(dev)) { services |= PCIE_PORT_SERVICE_AER; /*
Use helper function pcie_aer_is_native() in some places to keep the code tidy. No function changes. Signed-off-by: Xiaofei Tan <tanxiaofei@huawei.com> --- drivers/pci/pcie/aer.c | 4 ++-- drivers/pci/pcie/err.c | 2 +- drivers/pci/pcie/portdrv_core.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-)