FAILED: patch "[PATCH] scsi: qla2xxx: Use complete switch scan for RSCN events" failed to apply to 4.19-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 4.19-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 1560bafdff9ed54857ac3a03c4c8d8f10d791ba6 Mon Sep 17 00:00:00 2001
From: Quinn Tran <[email protected]>
Date: Thu, 24 Jan 2019 23:23:50 -0800
Subject: [PATCH] scsi: qla2xxx: Use complete switch scan for RSCN events
This patch removes unnecessary code to handle RSCN, instead performs full scan everytime driver receives RSCN
Fixes d4f7a16aeca6f ("scsi: qla2xxx: Remove ASYNC GIDPN switch command")
Cc [email protected] #4.19
Signed-off-by Quinn Tran <[email protected]>
Signed-off-by Himanshu Madhani <[email protected]>
Signed-off-by Martin K. Petersen <[email protected]>
drivers/scsi/qla2xxx/qla_init.c +0 -86
@@ -1471,29 +1471,6 @@ int qla24xx_fcport_handle_login(struct scsi_qla_host *vha, fc_port_t *fcport)return 0 ; } -static -void qla24xx_handle_rscn_event (fc_port_t *fcport,struct event_arg *ea) -{ - fcport->rscn_gen++; - -ql_dbg (ql_dbg_disc, fcport->vha,0x210c , -"%s %8phC DS %d LS %d\n" , - __func__, fcport->port_name, fcport->disc_state, - fcport->fw_login_state); - -if (fcport->flags &FCF_ASYNC_SENT ) -return ; - -switch (fcport->disc_state) { -case DSC_DELETED : -case DSC_LOGIN_COMPLETE : -qla24xx_post_gpnid_work (fcport->vha, &ea->id); -break ; -default : -break ; - } -} -int qla24xx_post_newsess_work (struct scsi_qla_host *vha,port_id_t *id,u8 *port_name,u8 *node_name,void *pla,u8 fc4_type) {
@@ -1560,8 +1537,6 @@ static void qla_handle_els_plogi_done(scsi_qla_host_t *vha,void qla2x00_fcport_event_handler (scsi_qla_host_t *vha,struct event_arg *ea) { -fc_port_t *f, *tf; -uint32_t id =0 , mask, rid;fc_port_t *fcport;switch (ea->event) {
@@ -1574,10 +1549,6 @@ void qla2x00_fcport_event_handler(scsi_qla_host_t *vha, struct event_arg *ea)case FCME_RSCN :if (test_bit (UNLOADING , &vha->dpc_flags))return ; -switch (ea->id.b.rsvd_1) { -case RSCN_PORT_ADDR : -#define BIGSCAN 1 -#if definedBIGSCAN &BIGSCAN >0 {unsigned long flags; fcport = qla2x00_find_fcport_by_nportid
@@ -1596,59 +1567,6 @@ void qla2x00_fcport_event_handler(scsi_qla_host_t *vha, struct event_arg *ea) }spin_unlock_irqrestore (&vha->work_lock, flags); } -#else - { -int rc; - fcport =qla2x00_find_fcport_by_nportid (vha, &ea->id,1 ); -if (!fcport) { -/* cable moved */ - rc =qla24xx_post_gpnid_work (vha, &ea->id); -if (rc) { -ql_log (ql_log_warn, vha,0xd044 , -"RSCN GPNID work failed %06x\n" , - ea->id.b24); - } - }else { - ea->fcport = fcport; - fcport->scan_needed =1 ; -qla24xx_handle_rscn_event (fcport, ea); - } - } -#endif -break ; -case RSCN_AREA_ADDR : -case RSCN_DOM_ADDR : -if (ea->id.b.rsvd_1 ==RSCN_AREA_ADDR ) { - mask =0xffff00 ; -ql_dbg (ql_dbg_async, vha,0x5044 , -"RSCN: Area 0x%06x was affected\n" , - ea->id.b24); - }else { - mask =0xff0000 ; -ql_dbg (ql_dbg_async, vha,0x507a , -"RSCN: Domain 0x%06x was affected\n" , - ea->id.b24); - } - - rid = ea->id.b24 & mask; -list_for_each_entry_safe (f, tf, &vha->vp_fcports, - list) { - id = f->d_id.b24 & mask; -if (rid == id) { - ea->fcport = f; -qla24xx_handle_rscn_event (f, ea); - } - } -break ; -case RSCN_FAB_ADDR : -default : -ql_log (ql_log_warn, vha,0xd045 , -"RSCN: Fabric was affected. Addr format %d\n" , - ea->id.b.rsvd_1); -qla2x00_mark_all_devices_lost (vha,1 ); -set_bit (LOOP_RESYNC_NEEDED , &vha->dpc_flags); -set_bit (LOCAL_LOOP_UPDATE , &vha->dpc_flags); - }break ;case FCME_GNL_DONE :qla24xx_handle_gnl_done_event (vha, ea);
@@ -1709,11 +1627,7 @@ void qla_rscn_replay(fc_port_t *fcport) ea.event =FCME_RSCN ; ea.id = fcport->d_id; ea.id.b.rsvd_1 =RSCN_PORT_ADDR ; -#if definedBIGSCAN &BIGSCAN >0 qla2x00_fcport_event_handler (fcport->vha, &ea); -#else -qla24xx_post_gpnid_work (fcport->vha, &ea.id); -#endif } }