Re: [PATCH] qla2xxx: Use transport defined speed mask for supported_speeds

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> 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





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux