Patch "PCI: Support PCIe devices with short cfg_size" has been added to the 3.14-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
PCI: Support PCIe devices with short cfg_size
to the 3.14-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
pci-support-pcie-devices-with-short-cfg_size.patch
and it can be found in the queue-3.14 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
c20aecf6963d1273d8f6d61c042b4845441ca592Mon Sep 17 00:00:00 2001
From: "Jason S. McMullan" <[email protected]>
Date: Wed, 30 Sep 2015 15:35:05 +0900
Subject: PCI: Support PCIe devices with short cfg_size
From: Jason S. McMullan <[email protected]>
commit c20aecf6963d1273d8f6d61c042b4845441ca592 upstream.
If a device quirk modifies the pci_dev->cfg_size to be less than PCI_CFG_SPACE_EXP_SIZE (4096), but greater than PCI_CFG_SPACE_SIZE (256), the PCI sysfs interface truncates the readable size to PCI_CFG_SPACE_SIZE.
Allow sysfs access to config space up to cfg_size, even if the device doesn't support the entire 4096-byte PCIe config space.
Note that pci_read_config() and pci_write_config() limit access to dev->cfg_size even though pcie_config_attr contains 4096 (the maximum size).
--- drivers/pci/pci-sysfs.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-)
drivers/pci/pci-sysfs.c +9 -9
@@ -1349,10 +1349,10 @@ int __must_check pci_create_sysfs_dev_fiif (!sysfs_initialized)return -EACCES ; -if (pdev->cfg_size <PCI_CFG_SPACE_EXP_SIZE ) - retval =sysfs_create_bin_file (&pdev->dev.kobj, &pci_config_attr); -else +if (pdev->cfg_size >PCI_CFG_SPACE_SIZE ) retval =sysfs_create_bin_file (&pdev->dev.kobj, &pcie_config_attr); +else + retval =sysfs_create_bin_file (&pdev->dev.kobj, &pci_config_attr);if (retval) goto err;
@@ -1409,10 +1409,10 @@ err_rom_file: err_resource_files:pci_remove_resource_files (pdev); err_config_file: -if (pdev->cfg_size <PCI_CFG_SPACE_EXP_SIZE ) -sysfs_remove_bin_file (&pdev->dev.kobj, &pci_config_attr); -else +if (pdev->cfg_size >PCI_CFG_SPACE_SIZE )sysfs_remove_bin_file (&pdev->dev.kobj, &pcie_config_attr); +else +sysfs_remove_bin_file (&pdev->dev.kobj, &pci_config_attr); err:return retval; }
@@ -1446,10 +1446,10 @@ void pci_remove_sysfs_dev_files(struct ppci_remove_capabilities_sysfs (pdev); -if (pdev->cfg_size <PCI_CFG_SPACE_EXP_SIZE ) -sysfs_remove_bin_file (&pdev->dev.kobj, &pci_config_attr); -else +if (pdev->cfg_size >PCI_CFG_SPACE_SIZE )sysfs_remove_bin_file (&pdev->dev.kobj, &pcie_config_attr); +else +sysfs_remove_bin_file (&pdev->dev.kobj, &pci_config_attr);pci_remove_resource_files (pdev);
Patches currently in stable-queue which might be from [email protected] are
queue-3.14/pci-limit-config-space-size-for-netronome-nfp6000-family.patch queue-3.14/pci-support-pcie-devices-with-short-cfg_size.patch queue-3.14/pci-add-netronome-vendor-and-device-ids.patch