Re: [PATCH 2/2] Create sysfs entries for PCI VPDI and VPDR tags

From: Bjorn Helgaas
Date: Sun Apr 10 2016 - 17:27:22 EST


On Thu, Feb 18, 2016 at 02:31:04PM -0600, Jordan Hargrave wrote:
> The VPD-R is a readonly area of the PCI Vital Product Data region.
> There are some standard keywords for serial number, manufacturer,
> and vendor-specific values. Dell Servers use a vendor-specific
> tag to store number of ports and port mapping of partitioned NICs.
>
> info = VPD-Info string
> PN = Part Number
> SN = Serial Number
> MN = Manufacturer ID
> Vx = Vendor-specific (x=0..9 A..Z)
>
> This creates a sysfs subdirectory in the pci device: vpdattr with
> 'info', 'EC', 'SN', 'V0', etc. files containing the tag values.
>
> Added pci.h patch
>
> Signed-off-by: Jordan Hargrave <Jordan_Hargrave@xxxxxxxx>
> ---
> include/linux/pci.h | 3 +
> 1 files changed, 3 insertions(+)
>
> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index 8135a2f..c1313b1 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -372,6 +372,9 @@ struct pci_dev {
> const struct attribute_group **msi_irq_groups;
> #endif
> struct pci_vpd *vpd;
> + int vpdr_len;
> + u8 *vpdr_data;
> + char *vpdi_data;

This should be squashed into the patch that uses the fields you're adding.

> #ifdef CONFIG_PCI_ATS
> union {
> struct pci_sriov *sriov; /* SR-IOV capability related */
> --
> 2.5.0
>