PCI/ERR: Simplify by computing pci_pcie_type() once
[ Upstream commit 480ef7cb9fcebda7b28cbed4f6cdcf0a02f4a6ca ] Instead of calling pci_pcie_type(dev) twice, call it once and save the result. No functional change intended. Link: https://lore.kernel.org/r/20201121001036.8560-7-sean.v.kelley@intel.com Tested-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> # non-native/no RCEC Signed-off-by: Sean V Kelley <sean.v.kelley@intel.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
f236fa3850
commit
2e3458b995
@@ -1039,6 +1039,7 @@ EXPORT_SYMBOL_GPL(aer_recover_queue);
|
|||||||
*/
|
*/
|
||||||
int aer_get_device_error_info(struct pci_dev *dev, struct aer_err_info *info)
|
int aer_get_device_error_info(struct pci_dev *dev, struct aer_err_info *info)
|
||||||
{
|
{
|
||||||
|
int type = pci_pcie_type(dev);
|
||||||
int aer = dev->aer_cap;
|
int aer = dev->aer_cap;
|
||||||
int temp;
|
int temp;
|
||||||
|
|
||||||
@@ -1057,8 +1058,8 @@ int aer_get_device_error_info(struct pci_dev *dev, struct aer_err_info *info)
|
|||||||
&info->mask);
|
&info->mask);
|
||||||
if (!(info->status & ~info->mask))
|
if (!(info->status & ~info->mask))
|
||||||
return 0;
|
return 0;
|
||||||
} else if (pci_pcie_type(dev) == PCI_EXP_TYPE_ROOT_PORT ||
|
} else if (type == PCI_EXP_TYPE_ROOT_PORT ||
|
||||||
pci_pcie_type(dev) == PCI_EXP_TYPE_DOWNSTREAM ||
|
type == PCI_EXP_TYPE_DOWNSTREAM ||
|
||||||
info->severity == AER_NONFATAL) {
|
info->severity == AER_NONFATAL) {
|
||||||
|
|
||||||
/* Link is still healthy for IO reads */
|
/* Link is still healthy for IO reads */
|
||||||
|
@@ -150,6 +150,7 @@ pci_ers_result_t pcie_do_recovery(struct pci_dev *dev,
|
|||||||
pci_channel_state_t state,
|
pci_channel_state_t state,
|
||||||
pci_ers_result_t (*reset_subordinates)(struct pci_dev *pdev))
|
pci_ers_result_t (*reset_subordinates)(struct pci_dev *pdev))
|
||||||
{
|
{
|
||||||
|
int type = pci_pcie_type(dev);
|
||||||
pci_ers_result_t status = PCI_ERS_RESULT_CAN_RECOVER;
|
pci_ers_result_t status = PCI_ERS_RESULT_CAN_RECOVER;
|
||||||
struct pci_bus *bus;
|
struct pci_bus *bus;
|
||||||
|
|
||||||
@@ -157,8 +158,8 @@ pci_ers_result_t pcie_do_recovery(struct pci_dev *dev,
|
|||||||
* Error recovery runs on all subordinates of the first downstream port.
|
* Error recovery runs on all subordinates of the first downstream port.
|
||||||
* If the downstream port detected the error, it is cleared at the end.
|
* If the downstream port detected the error, it is cleared at the end.
|
||||||
*/
|
*/
|
||||||
if (!(pci_pcie_type(dev) == PCI_EXP_TYPE_ROOT_PORT ||
|
if (!(type == PCI_EXP_TYPE_ROOT_PORT ||
|
||||||
pci_pcie_type(dev) == PCI_EXP_TYPE_DOWNSTREAM))
|
type == PCI_EXP_TYPE_DOWNSTREAM))
|
||||||
dev = pci_upstream_bridge(dev);
|
dev = pci_upstream_bridge(dev);
|
||||||
bus = dev->subordinate;
|
bus = dev->subordinate;
|
||||||
|
|
||||||
|
@@ -101,13 +101,14 @@ static const struct dev_pm_ops pcie_portdrv_pm_ops = {
|
|||||||
static int pcie_portdrv_probe(struct pci_dev *dev,
|
static int pcie_portdrv_probe(struct pci_dev *dev,
|
||||||
const struct pci_device_id *id)
|
const struct pci_device_id *id)
|
||||||
{
|
{
|
||||||
|
int type = pci_pcie_type(dev);
|
||||||
int status;
|
int status;
|
||||||
|
|
||||||
if (!pci_is_pcie(dev) ||
|
if (!pci_is_pcie(dev) ||
|
||||||
((pci_pcie_type(dev) != PCI_EXP_TYPE_ROOT_PORT) &&
|
((type != PCI_EXP_TYPE_ROOT_PORT) &&
|
||||||
(pci_pcie_type(dev) != PCI_EXP_TYPE_UPSTREAM) &&
|
(type != PCI_EXP_TYPE_UPSTREAM) &&
|
||||||
(pci_pcie_type(dev) != PCI_EXP_TYPE_DOWNSTREAM) &&
|
(type != PCI_EXP_TYPE_DOWNSTREAM) &&
|
||||||
(pci_pcie_type(dev) != PCI_EXP_TYPE_RC_EC)))
|
(type != PCI_EXP_TYPE_RC_EC)))
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
status = pcie_port_device_register(dev);
|
status = pcie_port_device_register(dev);
|
||||||
|
Reference in New Issue
Block a user