summaryrefslogtreecommitdiffstats
path: root/drivers/pci/pcie
diff options
context:
space:
mode:
authorBjorn Helgaas <bhelgaas@google.com>2018-01-30 12:12:33 -0600
committerBjorn Helgaas <helgaas@kernel.org>2018-01-30 15:25:56 -0600
commit64c3394efd4376c5988b40bcff840e2a1a1c1f17 (patch)
tree4f9697f0e7fb26fea8ac659eab02d94fddc0a7ed /drivers/pci/pcie
parenta596a7becefe7ddaac0de069ffe913eb2dc43fe4 (diff)
downloadop-kernel-dev-64c3394efd4376c5988b40bcff840e2a1a1c1f17.zip
op-kernel-dev-64c3394efd4376c5988b40bcff840e2a1a1c1f17.tar.gz
PCI/DPC: Make RP PIO log size check more generic
In dpc_probe(), we set dpc->rp_log_size to zero if we think the hardware reports an invalid size. In this case, we could have dpc->rp_extensions set but dpc->rp_log_size == 0, and we should print the basic RP PIO registers but not the variable-size portion. We already checked for dpc->rp_log_size < 4 above, so this patch is just for consistency of style. No functional change intended. Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Reviewed-by: Keith Busch <keith.busch@intel.com> Reviewed-by: Sinan Kaya <okaya@codeaurora.org>
Diffstat (limited to 'drivers/pci/pcie')
-rw-r--r--drivers/pci/pcie/pcie-dpc.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/pci/pcie/pcie-dpc.c b/drivers/pci/pcie/pcie-dpc.c
index 7e02d335..fede1d4 100644
--- a/drivers/pci/pcie/pcie-dpc.c
+++ b/drivers/pci/pcie/pcie-dpc.c
@@ -212,11 +212,12 @@ static void dpc_rp_pio_get_info(struct dpc_dev *dpc,
&rp_pio->header_log.dw2);
pci_read_config_dword(pdev, cap + PCI_EXP_DPC_RP_PIO_HEADER_LOG + 12,
&rp_pio->header_log.dw3);
- if (dpc->rp_log_size == 4)
- return;
+ if (dpc->rp_log_size < 5)
+ return;
pci_read_config_dword(pdev, cap + PCI_EXP_DPC_RP_PIO_IMPSPEC_LOG,
&rp_pio->impspec_log);
+
for (i = 0; i < dpc->rp_log_size - 5; i++)
pci_read_config_dword(pdev,
cap + PCI_EXP_DPC_RP_PIO_TLPPREFIX_LOG,
OpenPOWER on IntegriCloud