[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20131118191752.26774.25303.stgit@bhelgaas-glaptop.roam.corp.google.com>
Date: Mon, 18 Nov 2013 12:17:52 -0700
From: Bjorn Helgaas <bhelgaas@...gle.com>
To: stable@...r.kernel.org
Cc: Myron Stowe <myron.stowe@...hat.com>, linux-pci@...r.kernel.org,
Amos Kong <kongjianjun@...il.com>,
Adam Lee <adam.lee@...onical.com>,
linux-kernel@...r.kernel.org, Yuval Mintz <yuvalmin@...adcom.com>,
Ben Hutchings <ben@...adent.org.uk>,
Thomas Renninger <trenn@...e.de>
Subject: [PATCH 2/2] PCI: Support PCIe Capability Slot registers only for
ports with slots
Commit 6d3a1741f1e648cfbd5a0cc94477a0d5004c6f5e upstream.
Previously we allowed callers to access Slot Capabilities, Status, and
Control for Root Ports even if the Root Port did not implement a slot.
This seems dubious because the spec only requires these registers if a
slot is implemented.
It's true that even Root Ports without slots must have *space* for these
slot registers, because the Root Capabilities, Status, and Control
registers are after the slot registers in the capability. However,
for a v1 PCIe Capability, the *semantics* of the slot registers are
undefined unless a slot is implemented.
Signed-off-by: Bjorn Helgaas <bhelgaas@...gle.com>
Reviewed-By: Jiang Liu <jiang.liu@...wei.com>
CC: stable@...r.kernel.org # 3.10.x 3.11.x
---
drivers/pci/access.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/pci/access.c b/drivers/pci/access.c
index e26c3bd9aca4..bcd92b629d3c 100644
--- a/drivers/pci/access.c
+++ b/drivers/pci/access.c
@@ -499,8 +499,8 @@ static inline bool pcie_cap_has_sltctl(const struct pci_dev *dev)
int type = pci_pcie_type(dev);
return pcie_cap_version(dev) > 1 ||
- type == PCI_EXP_TYPE_ROOT_PORT ||
- (type == PCI_EXP_TYPE_DOWNSTREAM &&
+ ((type == PCI_EXP_TYPE_ROOT_PORT ||
+ type == PCI_EXP_TYPE_DOWNSTREAM) &&
pcie_caps_reg(dev) & PCI_EXP_FLAGS_SLOT);
}
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists