mirror of
https://github.com/torvalds/linux.git
synced 2024-11-25 05:32:00 +00:00
[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>
This commit is contained in:
parent
fdd52dfa3c
commit
79f89a4296
@ -62,6 +62,7 @@ extern int qlport_down_retry;
|
||||
extern int ql2xplogiabsentdevice;
|
||||
extern int ql2xloginretrycount;
|
||||
extern int ql2xfdmienable;
|
||||
extern int ql2xprocessrscn;
|
||||
|
||||
extern void qla2x00_sp_compl(scsi_qla_host_t *, srb_t *);
|
||||
|
||||
|
@ -2653,7 +2653,8 @@ qla2x00_device_resync(scsi_qla_host_t *ha)
|
||||
|
||||
switch (format) {
|
||||
case 0:
|
||||
if (!IS_QLA2100(ha) && !IS_QLA2200(ha) &&
|
||||
if (ql2xprocessrscn &&
|
||||
!IS_QLA2100(ha) && !IS_QLA2200(ha) &&
|
||||
!IS_QLA6312(ha) && !IS_QLA6322(ha) &&
|
||||
!IS_QLA24XX(ha) && !IS_QLA25XX(ha) &&
|
||||
ha->flags.init_done) {
|
||||
|
@ -519,7 +519,8 @@ qla2x00_async_event(scsi_qla_host_t *ha, uint16_t *mb)
|
||||
* us, create a new entry in our rscn fcports list and handle
|
||||
* the event like an RSCN.
|
||||
*/
|
||||
if (!IS_QLA2100(ha) && !IS_QLA2200(ha) && !IS_QLA6312(ha) &&
|
||||
if (ql2xprocessrscn &&
|
||||
!IS_QLA2100(ha) && !IS_QLA2200(ha) && !IS_QLA6312(ha) &&
|
||||
!IS_QLA6322(ha) && !IS_QLA24XX(ha) && !IS_QLA25XX(ha) &&
|
||||
ha->flags.init_done && mb[1] != 0xffff &&
|
||||
((ha->operating_mode == P2P && mb[1] != 0) ||
|
||||
|
@ -71,6 +71,12 @@ MODULE_PARM_DESC(ql2xfdmienable,
|
||||
"Enables FDMI registratons "
|
||||
"Default is 0 - no FDMI. 1 - perfom FDMI.");
|
||||
|
||||
int ql2xprocessrscn;
|
||||
module_param(ql2xprocessrscn, int, S_IRUGO|S_IRUSR);
|
||||
MODULE_PARM_DESC(ql2xprocessrscn,
|
||||
"Option to enable port RSCN handling via a series of less"
|
||||
"fabric intrusive ADISCs and PLOGIs.");
|
||||
|
||||
/*
|
||||
* SCSI host template entry points
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user