On Mon, 2 Mar 2020 18:25:05 -0800 Jacob Keller wrote: > Use the newly added pci_get_dsn() function for obtaining the 64-bit > Device Serial Number in the nfp6000_read_serial and > nfp_6000_get_interface functions. > > pci_get_dsn() reports the Device Serial number as a u64 value created by > combining two pci_read_config_dword functions. The lower 16 bits > represent the device interface value, and the next 48 bits represent the > serial value. Use put_unaligned_be32 and put_unaligned_be16 to convert > the serial value portion into a Big Endian formatted serial u8 array. > > Signed-off-by: Jacob Keller <jacob.e.keller@xxxxxxxxx> > Cc: Jakub Kicinski <kuba@xxxxxxxxxx> Reviewed-by: Jakub Kicinski <kuba@xxxxxxxxxx> Thanks! > - pci_read_config_dword(pdev, pos + 4, ®); > - put_unaligned_be16(reg >> 16, serial + 4); > - pci_read_config_dword(pdev, pos + 8, ®); > - put_unaligned_be32(reg, serial); > + put_unaligned_be32((u32)(dsn >> 32), serial); > + put_unaligned_be16((u16)(dsn >> 16), serial + 4); nit: the casts and extra brackets should be unnecessary, in case you're respinning..