提交 fe7568cf 编写于 作者: H Heiner Kallweit 提交者: Bjorn Helgaas

PCI/VPD: Treat invalid VPD like missing VPD capability

Exporting sysfs files that can't be accessed doesn't make much sense.
Therefore, if either a quirk or the dynamic size calculation result in VPD
being marked as invalid, treat this as though the device has no VPD
capability.  One consequence is that the "vpd" sysfs file is not visible.

Link: https://lore.kernel.org/r/6a02b204-4ed2-4553-c3b2-eacf9554fa8d@gmail.comSigned-off-by: NHeiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
上级 7bac5449
......@@ -124,9 +124,6 @@ static ssize_t pci_vpd_read(struct pci_dev *dev, loff_t pos, size_t count,
if (pos < 0)
return -EINVAL;
if (vpd->len == PCI_VPD_SZ_INVALID)
return -EIO;
if (pos > vpd->len)
return 0;
......@@ -188,9 +185,6 @@ static ssize_t pci_vpd_write(struct pci_dev *dev, loff_t pos, size_t count,
if (pos < 0 || (pos & 3) || (count & 3))
return -EINVAL;
if (vpd->len == PCI_VPD_SZ_INVALID)
return -EIO;
if (end > vpd->len)
return -EINVAL;
......@@ -231,6 +225,9 @@ void pci_vpd_init(struct pci_dev *dev)
if (!dev->vpd.len)
dev->vpd.len = pci_vpd_size(dev);
if (dev->vpd.len == PCI_VPD_SZ_INVALID)
dev->vpd.cap = 0;
}
static ssize_t vpd_read(struct file *filp, struct kobject *kobj,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册