Skip to contentSkip to conversation

mpt2sas : Device removal algorithm in interrupt context only

PATCH New Kashyap, Desai 1 participant 1 message Mar 9, 2010 SCSI

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 mpt2sas : Device removal algorithm in interrupt context only

external host not connecting after controller reboot: The problem is : devices are not coming back after having the cable disconnected then reconnected. The problem is because the driver/firmware device removal handshake is failing. Due to this failure, the controller firmware is not sending out device add events when the target is reconnected. This is root caused to a race in the driver/firmware device removal algorithm. There is duplicate code in both interrupt and user context; where target reset is being issue from user context path while sas_iounit_control(OP_REMOVE) is being sent from interrupt context. An active target_reset will fail the OP_REMOVE. To fix this problem, the duplicate code has been removed from user context path.

---

drivers/scsi/mpt2sas/mpt2sas_base.h +0 -11
index a5ec09f..1df5ec0 100644
@@ -259,16 +259,6 @@ struct _internal_cmd {
 	u16	smid;
 };
 
-/*
- * SAS Topology Structures
- */
-
-#define MPTSAS_STATE_TR_SEND		0x0001
-#define MPTSAS_STATE_TR_COMPLETE	0x0002
-#define MPTSAS_STATE_CNTRL_SEND		0x0004
-#define MPTSAS_STATE_CNTRL_COMPLETE	0x0008
-
-#define MPT2SAS_REQ_SAS_CNTRL		0x0010
 
 /**
  * struct _sas_device - attached device information
@@ -306,7 +296,6 @@ struct _sas_device {
 	u16	slot;
 	u8	hidden_raid_component;
 	u8	responding;
-	u16	state;
 };
 
 /**
drivers/scsi/mpt2sas/mpt2sas_scsih.c +123 -184

414 lines not on this page · raw message