scsi: qla2xxx: Use transport-defined speed mask for supported_speeds
commit 0b863257c1
upstream.
One of the sysfs values reported for supported_speeds was not valid (20Gb/s
reported instead of 64Gb/s). Instead of driver internal speed mask
definition, use speed mask defined in transport_fc for reporting
host->supported_speeds.
Link: https://lore.kernel.org/r/20220927115946.17559-1-njavali@marvell.com
Cc: stable@vger.kernel.org
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: Manish Rangankar <mrangankar@marvell.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
2b1a3172ee
Коммит
a2f0934e6b
|
@ -3318,11 +3318,34 @@ struct fc_function_template qla2xxx_transport_vport_functions = {
|
|||
.bsg_timeout = qla24xx_bsg_timeout,
|
||||
};
|
||||
|
||||
static uint
|
||||
qla2x00_get_host_supported_speeds(scsi_qla_host_t *vha, uint speeds)
|
||||
{
|
||||
uint supported_speeds = FC_PORTSPEED_UNKNOWN;
|
||||
|
||||
if (speeds & FDMI_PORT_SPEED_64GB)
|
||||
supported_speeds |= FC_PORTSPEED_64GBIT;
|
||||
if (speeds & FDMI_PORT_SPEED_32GB)
|
||||
supported_speeds |= FC_PORTSPEED_32GBIT;
|
||||
if (speeds & FDMI_PORT_SPEED_16GB)
|
||||
supported_speeds |= FC_PORTSPEED_16GBIT;
|
||||
if (speeds & FDMI_PORT_SPEED_8GB)
|
||||
supported_speeds |= FC_PORTSPEED_8GBIT;
|
||||
if (speeds & FDMI_PORT_SPEED_4GB)
|
||||
supported_speeds |= FC_PORTSPEED_4GBIT;
|
||||
if (speeds & FDMI_PORT_SPEED_2GB)
|
||||
supported_speeds |= FC_PORTSPEED_2GBIT;
|
||||
if (speeds & FDMI_PORT_SPEED_1GB)
|
||||
supported_speeds |= FC_PORTSPEED_1GBIT;
|
||||
|
||||
return supported_speeds;
|
||||
}
|
||||
|
||||
void
|
||||
qla2x00_init_host_attr(scsi_qla_host_t *vha)
|
||||
{
|
||||
struct qla_hw_data *ha = vha->hw;
|
||||
u32 speeds = FC_PORTSPEED_UNKNOWN;
|
||||
u32 speeds = 0, fdmi_speed = 0;
|
||||
|
||||
fc_host_dev_loss_tmo(vha->host) = ha->port_down_retry_count;
|
||||
fc_host_node_name(vha->host) = wwn_to_u64(vha->node_name);
|
||||
|
@ -3332,7 +3355,8 @@ qla2x00_init_host_attr(scsi_qla_host_t *vha)
|
|||
fc_host_max_npiv_vports(vha->host) = ha->max_npiv_vports;
|
||||
fc_host_npiv_vports_inuse(vha->host) = ha->cur_vport_count;
|
||||
|
||||
speeds = qla25xx_fdmi_port_speed_capability(ha);
|
||||
fdmi_speed = qla25xx_fdmi_port_speed_capability(ha);
|
||||
speeds = qla2x00_get_host_supported_speeds(vha, fdmi_speed);
|
||||
|
||||
fc_host_supported_speeds(vha->host) = speeds;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче