• Jacob Keller's avatar
    bnxt_en: Use pci_get_dsn() · 8d85b75b
    Jacob Keller authored
    Replace the open-coded implementation for reading the PCIe DSN with
    pci_get_dsn().
    
    Use of put_unaligned_le64 should be correct. pci_get_dsn() will perform
    two pci_read_config_dword calls. The first dword will be placed in the
    first 32 bits of the u64, while the second dword will be placed in the
    upper 32 bits of the u64.
    
    On Little Endian systems, the least significant byte comes first, which
    will be the least significant byte of the first dword, followed by the
    least significant byte of the second dword. Since the _le32 variations
    do not perform byte swapping, we will correctly copy the dwords into the
    dsn[] array in the same order as before.
    
    On Big Endian systems, the most significant byte of the second dword
    will come first. put_unaligned_le64 will perform a CPU_TO_LE64, which
    will swap things correctly before copying. This should also end up with
    the correct bytes in the dsn[] array.
    
    While at it, fix a small typo in the netdev_info error message when the
    DSN cannot be read.
    Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
    Cc: Michael Chan <michael.chan@broadcom.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    8d85b75b
bnxt.c 319 KB