PCI: Support PCIe Capability Slot registers only for ports with slots
authorBjorn Helgaas <bhelgaas@google.com>
Wed, 28 Aug 2013 18:01:03 +0000 (12:01 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 29 Nov 2013 19:11:42 +0000 (11:11 -0800)
commit1b81dc5b7eead5d1112c4042a41339493f71ddeb
treeef186c674c65ccce2759d623c6127cbac78d2be1
parent6c944bc629b3080bb850e9a2d5797d5b602ce648
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@google.com>
Reviewed-By: Jiang Liu <jiang.liu@huawei.com>
Acked-by: Myron Stowe <myron.stowe@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/pci/access.c