PCI: Enable SR-IOV ARI Capable Hierarchy before reading TotalVFs
authorBen Shelton <benjamin.h.shelton@intel.com>
Thu, 29 Oct 2015 21:20:31 +0000 (16:20 -0500)
committerBjorn Helgaas <bhelgaas@google.com>
Thu, 29 Oct 2015 21:20:31 +0000 (16:20 -0500)
commitff45f9ddbcf5418ff6402432d14ad91a40d9bea9
treebd79ba2cc8f0d5ca14777ce56b9f44aa17f23621
parent70675e0b6a1ae20f8e93f9fc083d28034ad38948
PCI: Enable SR-IOV ARI Capable Hierarchy before reading TotalVFs

For some SR-IOV devices, the number of available virtual functions, i.e.,
TotalVFs, increases after setting the ARI Capable Hierarchy bit in the
SR-IOV Control register.  This violates the SR-IOV spec, r1.1, sec 3.3.6,
which says TotalVFs is HwInit, but we don't need TotalVFs before setting
the ARI Capable bit anyway.

Set the ARI Capable Hierarchy bit (if ARI is enabled in the upstream
bridge) before reading TotalVFs.

[bhelgaas: changelog]
Signed-off-by: Ben Shelton <benjamin.h.shelton@intel.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/iov.c