lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon,  2 Mar 2020 18:24:59 -0800
From:   Jacob Keller <jacob.e.keller@...el.com>
To:     linux-pci@...r.kernel.org, netdev@...r.kernel.org,
        Bjorn Helgaas <bhelgaas@...gle.com>
Cc:     Jakub Kicinski <kuba@...nel.org>,
        David Miller <davem@...emloft.net>,
        Jacob Keller <jacob.e.keller@...el.com>
Subject: [PATCH v2 0/6] PCI: Implement function to read Device Serial Number

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, ixgbe and nfp drivers to use this new
function.

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.

The new implementation in v2 significantly simplifies some of the callers
which just want to print the value out in MSB order. By returning things as
a u64 in CPU Endian order, the "%016llX" printf format specifier can be used
to correctly format the value.

Per patch changes since v1
  PCI: Introduce pci_get_dsn
  * Update commit message based on feedback from Bjorn Helgaas
  * Modify the function to return a u64 (zero on no capability)
  * This new implementation ensures that the first dword is the lower 32
    bits and the second dword is the upper 32 bits.

  bnxt_en: Use pci_get_dsn()
  * Use the u64 return value from pci_get_dsn()
  * Copy it into the dsn[] array by using put_unaligned_le64
  * Fix a pre-existing typo in the netdev_info error message

  scsi: qedf: Use pci_get_dsn()
  * Use the u64 return value from pci_get_dsn()
  * simplify the snprintf to use "%016llX"
  * remove the unused 'i' variable

  ice: Use pci_get_dsn()
  * Use the u64 return value from pci_get_dsn()
  * simplify the snprintf to use "%016llX"

  ixgbe: Use pci_get_dsn()
  * Use the u64 return value from pci_get_dsn()
  * simplify the snprintf to use "%016llX"

  nfp: Use pci_get_dsn()
  * Added in v2

Jacob Keller (6):
  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()
  nfp: Use pci_get_dsn()

 drivers/net/ethernet/broadcom/bnxt/bnxt.c     | 14 +++-----
 drivers/net/ethernet/intel/ice/ice_main.c     | 30 ++++++----------
 drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c | 18 ++++------
 .../netronome/nfp/nfpcore/nfp6000_pcie.c      | 24 +++++--------
 drivers/pci/pci.c                             | 34 +++++++++++++++++++
 drivers/scsi/qedf/qedf_main.c                 | 19 ++++-------
 include/linux/pci.h                           |  5 +++
 7 files changed, 76 insertions(+), 68 deletions(-)

-- 
2.25.0.368.g28a2d05eebfb

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ