> On Sep 27, 2022, at 4:59 AM, Nilesh Javali <njavali@xxxxxxxxxxx> wrote: > > From: Manish Rangankar <mrangankar@xxxxxxxxxxx> > > One of the sysfs value 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. > > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Manish Rangankar <mrangankar@xxxxxxxxxxx> > Signed-off-by: Nilesh Javali <njavali@xxxxxxxxxxx> > --- > drivers/scsi/qla2xxx/qla_attr.c | 28 ++++++++++++++++++++++++++-- > 1 file changed, 26 insertions(+), 2 deletions(-) > > diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c > index fa1fcbfb946f..6188f6e21464 100644 > --- a/drivers/scsi/qla2xxx/qla_attr.c > +++ b/drivers/scsi/qla2xxx/qla_attr.c > @@ -3330,11 +3330,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); > @@ -3344,7 +3367,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; > } > -- > 2.23.1 > Looks Good. Reviewed-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx> -- Himanshu Madhani Oracle Linux Engineering