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. Changes to v2: - Spelling fixes as suggested by Bjorn Helgaas - Update to correct vpd size in pci_vpc_pci22_write - Pass in modified VPD size to pci_vpd_pci22_size() to make quirk_brcm_570x_limit_vpd work 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 | 84 +++++++++++++++++++++++++++++++++++++++++++++++-- drivers/pci/pci-sysfs.c | 22 +++++++------ drivers/pci/quirks.c | 43 +++++++++++++++++++++++++ include/linux/pci.h | 27 ++++++++++++++-- 4 files changed, 162 insertions(+), 14 deletions(-) -- 1.8.5.6 -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html