mbox series

[0/5] pci: implement function to read Device Serial Number

Message ID 20200227223635.1021197-1-jacob.e.keller@intel.com
Headers show
Series pci: implement function to read Device Serial Number | expand

Message

Keller, Jacob E Feb. 27, 2020, 10:36 p.m. UTC
Several drivers read the Device Serial Number from the PCIe extended
configuration space. Each of these drivers implements a similar approach to
finding the position and then extracting the 8 bytes of data.

Implement a new helper function, pci_get_dsn, which can be used to extract
this data into an 8 byte array.

Modify the bnxt_en, qedf, ice, and ixgbe driver to use this new function.

I left the implementation in the netronome nfp driver alone because they
appear to extract parts of the DSN into separate locations and the
transformation was not as obvious.

The intent for this is to reduce duplicate code across the various drivers,
and make it easier to write future code that wants to read the DSN. In
particular the ice driver will be using the DSN as its serial number when
implementing the DEVLINK_CMD_INFO_GET.

I'm not entirely sure what tree these patches should go through, since it
includes a core PCI change, as well as changes for both networking drivers
and a scsi driver.

Jacob Keller (5):
  pci: introduce pci_get_dsn
  bnxt_en: use pci_get_dsn
  scsi: qedf: use pci_get_dsn
  ice: use pci_get_dsn
  ixgbe: use pci_get_dsn

 drivers/net/ethernet/broadcom/bnxt/bnxt.c     | 14 +++-----
 drivers/net/ethernet/intel/ice/ice_main.c     | 32 ++++++++----------
 drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c | 16 ++++-----
 drivers/pci/pci.c                             | 33 +++++++++++++++++++
 drivers/scsi/qedf/qedf_main.c                 | 16 ++++-----
 include/linux/pci.h                           |  5 +++
 6 files changed, 68 insertions(+), 48 deletions(-)