Skip to content

Commit 79f89a4

Browse files
avasquez01James Bottomley
authored andcommitted
[SCSI] qla2xxx: Disable port-type RSCN handling via driver state-machine.
Given the semantic changes in both the device-model and fc-transport APIs, the driver's handling of port-type RSCNs via a series of ADISCs and PLOGIs can cause series of badness ranging from unexpectedly device loss to devices not being discovered. In the interim, disable (via a module-parameter) this feature and allow RSCN management to continue to occur within the driver's DPC thread. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
1 parent fdd52df commit 79f89a4

File tree

4 files changed

+11
-2
lines changed

4 files changed

+11
-2
lines changed

drivers/scsi/qla2xxx/qla_gbl.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ extern int qlport_down_retry;
6262
extern int ql2xplogiabsentdevice;
6363
extern int ql2xloginretrycount;
6464
extern int ql2xfdmienable;
65+
extern int ql2xprocessrscn;
6566

6667
extern void qla2x00_sp_compl(scsi_qla_host_t *, srb_t *);
6768

drivers/scsi/qla2xxx/qla_init.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2653,7 +2653,8 @@ qla2x00_device_resync(scsi_qla_host_t *ha)
26532653

26542654
switch (format) {
26552655
case 0:
2656-
if (!IS_QLA2100(ha) && !IS_QLA2200(ha) &&
2656+
if (ql2xprocessrscn &&
2657+
!IS_QLA2100(ha) && !IS_QLA2200(ha) &&
26572658
!IS_QLA6312(ha) && !IS_QLA6322(ha) &&
26582659
!IS_QLA24XX(ha) && !IS_QLA25XX(ha) &&
26592660
ha->flags.init_done) {

drivers/scsi/qla2xxx/qla_isr.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -519,7 +519,8 @@ qla2x00_async_event(scsi_qla_host_t *ha, uint16_t *mb)
519519
* us, create a new entry in our rscn fcports list and handle
520520
* the event like an RSCN.
521521
*/
522-
if (!IS_QLA2100(ha) && !IS_QLA2200(ha) && !IS_QLA6312(ha) &&
522+
if (ql2xprocessrscn &&
523+
!IS_QLA2100(ha) && !IS_QLA2200(ha) && !IS_QLA6312(ha) &&
523524
!IS_QLA6322(ha) && !IS_QLA24XX(ha) && !IS_QLA25XX(ha) &&
524525
ha->flags.init_done && mb[1] != 0xffff &&
525526
((ha->operating_mode == P2P && mb[1] != 0) ||

drivers/scsi/qla2xxx/qla_os.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,12 @@ MODULE_PARM_DESC(ql2xfdmienable,
7171
"Enables FDMI registratons "
7272
"Default is 0 - no FDMI. 1 - perfom FDMI.");
7373

74+
int ql2xprocessrscn;
75+
module_param(ql2xprocessrscn, int, S_IRUGO|S_IRUSR);
76+
MODULE_PARM_DESC(ql2xprocessrscn,
77+
"Option to enable port RSCN handling via a series of less"
78+
"fabric intrusive ADISCs and PLOGIs.");
79+
7480
/*
7581
* SCSI host template entry points
7682
*/

0 commit comments

Comments
 (0)