Re: [PATCH] qla2xxx: Add option to disable FC2 Target support

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

 




> On Feb 8, 2023, at 7:20 AM, Daniel Wagner <dwagner@xxxxxxx> wrote:
> 
> 44c57f205876 ("scsi: qla2xxx: Changes to support FCP2 Target") added
> support for FC2 Targets. Unfortunately, there are older setups which
> break with this new feature enabled.
> 
> Allow to disable it via module option.
> 
> Signed-off-by: Daniel Wagner <dwagner@xxxxxxx>
> ---
> 
> We got two bug reports, one which dependend on revert of the above mentioned
> commit to fix their setup and one which depended on this commit to present to
> fix their setup. The only way I see how we can help out here is to make the
> feature optional.
> 
> drivers/scsi/qla2xxx/qla_gbl.h  |  1 +
> drivers/scsi/qla2xxx/qla_init.c |  3 ++-
> drivers/scsi/qla2xxx/qla_os.c   | 10 +++++++++-
> 3 files changed, 12 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h
> index e3256e721be1..ee54207fc531 100644
> --- a/drivers/scsi/qla2xxx/qla_gbl.h
> +++ b/drivers/scsi/qla2xxx/qla_gbl.h
> @@ -192,6 +192,7 @@ extern int ql2xsecenable;
> extern int ql2xenforce_iocb_limit;
> extern int ql2xabts_wait_nvme;
> extern u32 ql2xnvme_queues;
> +extern int ql2xfc2target;
> 
> extern int qla2x00_loop_reset(scsi_qla_host_t *);
> extern void qla2x00_abort_all_cmds(scsi_qla_host_t *, int);
> diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
> index 8d9ecabb1aac..a6a08d475f5f 100644
> --- a/drivers/scsi/qla2xxx/qla_init.c
> +++ b/drivers/scsi/qla2xxx/qla_init.c
> @@ -1839,7 +1839,8 @@ void qla2x00_handle_rscn(scsi_qla_host_t *vha, struct event_arg *ea)
> case RSCN_PORT_ADDR:
> fcport = qla2x00_find_fcport_by_nportid(vha, &ea->id, 1);
> if (fcport) {
> - if (fcport->flags & FCF_FCP2_DEVICE &&
> + if (ql2xfc2target &&
> +    fcport->flags & FCF_FCP2_DEVICE &&
>    atomic_read(&fcport->state) == FCS_ONLINE) {
> ql_dbg(ql_dbg_disc, vha, 0x2115,
>       "Delaying session delete for FCP2 portid=%06x %8phC ",
> diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
> index 7fb28c207ee5..d7c8bf3a6f9a 100644
> --- a/drivers/scsi/qla2xxx/qla_os.c
> +++ b/drivers/scsi/qla2xxx/qla_os.c
> @@ -360,6 +360,13 @@ MODULE_PARM_DESC(ql2xnvme_queues,
> "1 - Minimum number of queues supported\n"
> "8 - Default value");
> 
> +int ql2xfc2target = 1;
> +module_param(ql2xfc2target, int, 0444);
> +MODULE_PARM_DESC(qla2xfc2target,
> +                 "Enables FC2 Target support. "
> +                 "0 - FC2 Target support is disabled. "
> +                 "1 - FC2 Target support is enabled (default).");
> +
> static struct scsi_transport_template *qla2xxx_transport_template = NULL;
> struct scsi_transport_template *qla2xxx_transport_vport_template = NULL;
> 
> @@ -4075,7 +4082,8 @@ qla2x00_mark_all_devices_lost(scsi_qla_host_t *vha)
>    "Mark all dev lost\n");
> 
> list_for_each_entry(fcport, &vha->vp_fcports, list) {
> - if (fcport->loop_id != FC_NO_LOOP_ID &&
> + if (ql2xfc2target &&
> +    fcport->loop_id != FC_NO_LOOP_ID &&
>    (fcport->flags & FCF_FCP2_DEVICE) &&
>    fcport->port_type == FCT_TARGET &&
>    !qla2x00_reset_active(vha)) {
> -- 
> 2.35.3
> 

Looks Good.

Reviewed-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx <mailto: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