[PATCHv2 0/4] PCI VPD access fixes

From: Hannes Reinecke
Date: Wed Jan 13 2016 - 06:26:45 EST


Hi all,

the current PCI VPD page access assumes that the entire possible VPD
data is readable. However, the spec only guarantees a VPD data up to
the 'end' marker, with everything beyond that being undefined.
This causes a system lockup on certain devices.

With this patch we always set the VPD sysfs attribute size to '0', and
calculate the available VPD size on the first access.
If no valid data can be read an I/O error is returned.

I've also included the patch from Babu to blacklists devices which
are known to lockup when accessing the VPD data.

Babu Moger (1):
pci: Blacklist vpd access for buggy devices

Hannes Reinecke (3):
pci: Update VPD definitions
pci: allow access to VPD attributes with size '0'
pci: Determine actual VPD size on first access

drivers/pci/access.c | 79 ++++++++++++++++++++++++++++++++++++++++++++++++-
drivers/pci/pci-sysfs.c | 22 ++++++++------
drivers/pci/quirks.c | 41 +++++++++++++++++++++++++
include/linux/pci.h | 27 +++++++++++++++--
4 files changed, 157 insertions(+), 12 deletions(-)

--
1.8.5.6