@@ -1578,7 +1578,7 @@ static void qedf_setup_fdmi(struct qedf_ctx *qedf)
struct fc_lport *lport = qedf->lport;
struct fc_host_attrs *fc_host = shost_to_fc_host(lport->host);
u8 buf[8];
- int i, pos;
+ int i, err;
/*
* fdmi_enabled needs to be set for libfc to execute FDMI registration.
@@ -1591,20 +1591,16 @@ static void qedf_setup_fdmi(struct qedf_ctx *qedf)
*/
/* Get the PCI-e Device Serial Number Capability */
- pos = pci_find_ext_capability(qedf->pdev, PCI_EXT_CAP_ID_DSN);
- if (pos) {
- pos += 4;
- for (i = 0; i < 8; i++)
- pci_read_config_byte(qedf->pdev, pos + i, &buf[i]);
-
+ err = pci_get_dsn(qedf->pdev, buf);
+ if (err)
+ snprintf(fc_host->serial_number,
+ sizeof(fc_host->serial_number), "Unknown");
+ else
snprintf(fc_host->serial_number,
sizeof(fc_host->serial_number),
"%02X%02X%02X%02X%02X%02X%02X%02X",
buf[7], buf[6], buf[5], buf[4],
buf[3], buf[2], buf[1], buf[0]);
- } else
- snprintf(fc_host->serial_number,
- sizeof(fc_host->serial_number), "Unknown");
snprintf(fc_host->manufacturer,
sizeof(fc_host->manufacturer), "%s", "Cavium Inc.");
Replace the open-coded implementation for reading the PCIe DSN with pci_get_dsn. Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> Cc: QLogic-Storage-Upstream@cavium.com --- drivers/scsi/qedf/qedf_main.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-)