Commit 4be4ad6c authored by Justin Tee's avatar Justin Tee Committed by Martin K. Petersen

scsi: lpfc: Remove shost_lock protection for fc_host_port shost APIs

Desiring to reduce the amount of unnecessary shost_lock acquisitions in the
lpfc driver, it has been determined that there is no need for shost_lock
protection when retrieving fc_host port information because it is only for
display to user via sysfs.
Signed-off-by: default avatarJustin Tee <justin.tee@broadcom.com>
Link: https://lore.kernel.org/r/20240131185112.149731-12-justintee8345@gmail.comReviewed-by: default avatarHimanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 140bd888
...@@ -6429,8 +6429,6 @@ lpfc_get_host_port_type(struct Scsi_Host *shost) ...@@ -6429,8 +6429,6 @@ lpfc_get_host_port_type(struct Scsi_Host *shost)
struct lpfc_vport *vport = (struct lpfc_vport *) shost->hostdata; struct lpfc_vport *vport = (struct lpfc_vport *) shost->hostdata;
struct lpfc_hba *phba = vport->phba; struct lpfc_hba *phba = vport->phba;
spin_lock_irq(shost->host_lock);
if (vport->port_type == LPFC_NPIV_PORT) { if (vport->port_type == LPFC_NPIV_PORT) {
fc_host_port_type(shost) = FC_PORTTYPE_NPIV; fc_host_port_type(shost) = FC_PORTTYPE_NPIV;
} else if (lpfc_is_link_up(phba)) { } else if (lpfc_is_link_up(phba)) {
...@@ -6447,8 +6445,6 @@ lpfc_get_host_port_type(struct Scsi_Host *shost) ...@@ -6447,8 +6445,6 @@ lpfc_get_host_port_type(struct Scsi_Host *shost)
} }
} else } else
fc_host_port_type(shost) = FC_PORTTYPE_UNKNOWN; fc_host_port_type(shost) = FC_PORTTYPE_UNKNOWN;
spin_unlock_irq(shost->host_lock);
} }
/** /**
...@@ -6461,8 +6457,6 @@ lpfc_get_host_port_state(struct Scsi_Host *shost) ...@@ -6461,8 +6457,6 @@ lpfc_get_host_port_state(struct Scsi_Host *shost)
struct lpfc_vport *vport = (struct lpfc_vport *) shost->hostdata; struct lpfc_vport *vport = (struct lpfc_vport *) shost->hostdata;
struct lpfc_hba *phba = vport->phba; struct lpfc_hba *phba = vport->phba;
spin_lock_irq(shost->host_lock);
if (vport->fc_flag & FC_OFFLINE_MODE) if (vport->fc_flag & FC_OFFLINE_MODE)
fc_host_port_state(shost) = FC_PORTSTATE_OFFLINE; fc_host_port_state(shost) = FC_PORTSTATE_OFFLINE;
else { else {
...@@ -6490,8 +6484,6 @@ lpfc_get_host_port_state(struct Scsi_Host *shost) ...@@ -6490,8 +6484,6 @@ lpfc_get_host_port_state(struct Scsi_Host *shost)
break; break;
} }
} }
spin_unlock_irq(shost->host_lock);
} }
/** /**
...@@ -6504,8 +6496,6 @@ lpfc_get_host_speed(struct Scsi_Host *shost) ...@@ -6504,8 +6496,6 @@ lpfc_get_host_speed(struct Scsi_Host *shost)
struct lpfc_vport *vport = (struct lpfc_vport *) shost->hostdata; struct lpfc_vport *vport = (struct lpfc_vport *) shost->hostdata;
struct lpfc_hba *phba = vport->phba; struct lpfc_hba *phba = vport->phba;
spin_lock_irq(shost->host_lock);
if ((lpfc_is_link_up(phba)) && (!(phba->hba_flag & HBA_FCOE_MODE))) { if ((lpfc_is_link_up(phba)) && (!(phba->hba_flag & HBA_FCOE_MODE))) {
switch(phba->fc_linkspeed) { switch(phba->fc_linkspeed) {
case LPFC_LINK_SPEED_1GHZ: case LPFC_LINK_SPEED_1GHZ:
...@@ -6568,8 +6558,6 @@ lpfc_get_host_speed(struct Scsi_Host *shost) ...@@ -6568,8 +6558,6 @@ lpfc_get_host_speed(struct Scsi_Host *shost)
} }
} else } else
fc_host_speed(shost) = FC_PORTSPEED_UNKNOWN; fc_host_speed(shost) = FC_PORTSPEED_UNKNOWN;
spin_unlock_irq(shost->host_lock);
} }
/** /**
...@@ -6583,8 +6571,6 @@ lpfc_get_host_fabric_name (struct Scsi_Host *shost) ...@@ -6583,8 +6571,6 @@ lpfc_get_host_fabric_name (struct Scsi_Host *shost)
struct lpfc_hba *phba = vport->phba; struct lpfc_hba *phba = vport->phba;
u64 node_name; u64 node_name;
spin_lock_irq(shost->host_lock);
if ((vport->port_state > LPFC_FLOGI) && if ((vport->port_state > LPFC_FLOGI) &&
((vport->fc_flag & FC_FABRIC) || ((vport->fc_flag & FC_FABRIC) ||
((phba->fc_topology == LPFC_TOPOLOGY_LOOP) && ((phba->fc_topology == LPFC_TOPOLOGY_LOOP) &&
...@@ -6594,8 +6580,6 @@ lpfc_get_host_fabric_name (struct Scsi_Host *shost) ...@@ -6594,8 +6580,6 @@ lpfc_get_host_fabric_name (struct Scsi_Host *shost)
/* fabric is local port if there is no F/FL_Port */ /* fabric is local port if there is no F/FL_Port */
node_name = 0; node_name = 0;
spin_unlock_irq(shost->host_lock);
fc_host_fabric_name(shost) = node_name; fc_host_fabric_name(shost) = node_name;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment