aboutsummaryrefslogtreecommitdiffstats
path: root/include/scsi
diff options
context:
space:
mode:
Diffstat (limited to 'include/scsi')
-rw-r--r--include/scsi/libsas.h23
-rw-r--r--include/scsi/scsi_transport_fc.h4
-rw-r--r--include/scsi/scsi_transport_iscsi.h2
3 files changed, 22 insertions, 7 deletions
diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h
index 9582e8401669..9ccc0365aa89 100644
--- a/include/scsi/libsas.h
+++ b/include/scsi/libsas.h
@@ -200,9 +200,14 @@ struct domain_device {
200 void *lldd_dev; 200 void *lldd_dev;
201}; 201};
202 202
203struct sas_discovery_event {
204 struct work_struct work;
205 struct asd_sas_port *port;
206};
207
203struct sas_discovery { 208struct sas_discovery {
204 spinlock_t disc_event_lock; 209 spinlock_t disc_event_lock;
205 struct work_struct disc_work[DISC_NUM_EVENTS]; 210 struct sas_discovery_event disc_work[DISC_NUM_EVENTS];
206 unsigned long pending; 211 unsigned long pending;
207 u8 fanout_sas_addr[8]; 212 u8 fanout_sas_addr[8];
208 u8 eeds_a[8]; 213 u8 eeds_a[8];
@@ -248,14 +253,19 @@ struct asd_sas_port {
248 void *lldd_port; /* not touched by the sas class code */ 253 void *lldd_port; /* not touched by the sas class code */
249}; 254};
250 255
256struct asd_sas_event {
257 struct work_struct work;
258 struct asd_sas_phy *phy;
259};
260
251/* The phy pretty much is controlled by the LLDD. 261/* The phy pretty much is controlled by the LLDD.
252 * The class only reads those fields. 262 * The class only reads those fields.
253 */ 263 */
254struct asd_sas_phy { 264struct asd_sas_phy {
255/* private: */ 265/* private: */
256 /* protected by ha->event_lock */ 266 /* protected by ha->event_lock */
257 struct work_struct port_events[PORT_NUM_EVENTS]; 267 struct asd_sas_event port_events[PORT_NUM_EVENTS];
258 struct work_struct phy_events[PHY_NUM_EVENTS]; 268 struct asd_sas_event phy_events[PHY_NUM_EVENTS];
259 269
260 unsigned long port_events_pending; 270 unsigned long port_events_pending;
261 unsigned long phy_events_pending; 271 unsigned long phy_events_pending;
@@ -307,10 +317,15 @@ struct scsi_core {
307 int queue_thread_kill; 317 int queue_thread_kill;
308}; 318};
309 319
320struct sas_ha_event {
321 struct work_struct work;
322 struct sas_ha_struct *ha;
323};
324
310struct sas_ha_struct { 325struct sas_ha_struct {
311/* private: */ 326/* private: */
312 spinlock_t event_lock; 327 spinlock_t event_lock;
313 struct work_struct ha_events[HA_NUM_EVENTS]; 328 struct sas_ha_event ha_events[HA_NUM_EVENTS];
314 unsigned long pending; 329 unsigned long pending;
315 330
316 struct scsi_core core; 331 struct scsi_core core;
diff --git a/include/scsi/scsi_transport_fc.h b/include/scsi/scsi_transport_fc.h
index fd352323378b..798f7c7ee426 100644
--- a/include/scsi/scsi_transport_fc.h
+++ b/include/scsi/scsi_transport_fc.h
@@ -206,9 +206,9 @@ struct fc_rport { /* aka fc_starget_attrs */
206 u8 flags; 206 u8 flags;
207 struct list_head peers; 207 struct list_head peers;
208 struct device dev; 208 struct device dev;
209 struct work_struct dev_loss_work; 209 struct delayed_work dev_loss_work;
210 struct work_struct scan_work; 210 struct work_struct scan_work;
211 struct work_struct fail_io_work; 211 struct delayed_work fail_io_work;
212 struct work_struct stgt_delete_work; 212 struct work_struct stgt_delete_work;
213 struct work_struct rport_delete_work; 213 struct work_struct rport_delete_work;
214} __attribute__((aligned(sizeof(unsigned long)))); 214} __attribute__((aligned(sizeof(unsigned long))));
diff --git a/include/scsi/scsi_transport_iscsi.h b/include/scsi/scsi_transport_iscsi.h
index 4b95c89c95c9..d5c218ddc527 100644
--- a/include/scsi/scsi_transport_iscsi.h
+++ b/include/scsi/scsi_transport_iscsi.h
@@ -176,7 +176,7 @@ struct iscsi_cls_session {
176 176
177 /* recovery fields */ 177 /* recovery fields */
178 int recovery_tmo; 178 int recovery_tmo;
179 struct work_struct recovery_work; 179 struct delayed_work recovery_work;
180 180
181 int target_id; 181 int target_id;
182 182