diff options
Diffstat (limited to 'drivers/scsi/libsas/sas_init.c')
-rw-r--r-- | drivers/scsi/libsas/sas_init.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/scsi/libsas/sas_init.c b/drivers/scsi/libsas/sas_init.c index c836a237fb79..d65bc4e0f214 100644 --- a/drivers/scsi/libsas/sas_init.c +++ b/drivers/scsi/libsas/sas_init.c | |||
@@ -65,9 +65,11 @@ void sas_hash_addr(u8 *hashed, const u8 *sas_addr) | |||
65 | 65 | ||
66 | /* ---------- HA events ---------- */ | 66 | /* ---------- HA events ---------- */ |
67 | 67 | ||
68 | void sas_hae_reset(void *data) | 68 | void sas_hae_reset(struct work_struct *work) |
69 | { | 69 | { |
70 | struct sas_ha_struct *ha = data; | 70 | struct sas_ha_event *ev = |
71 | container_of(work, struct sas_ha_event, work); | ||
72 | struct sas_ha_struct *ha = ev->ha; | ||
71 | 73 | ||
72 | sas_begin_event(HAE_RESET, &ha->event_lock, | 74 | sas_begin_event(HAE_RESET, &ha->event_lock, |
73 | &ha->pending); | 75 | &ha->pending); |
@@ -112,6 +114,8 @@ int sas_register_ha(struct sas_ha_struct *sas_ha) | |||
112 | } | 114 | } |
113 | } | 115 | } |
114 | 116 | ||
117 | INIT_LIST_HEAD(&sas_ha->eh_done_q); | ||
118 | |||
115 | return 0; | 119 | return 0; |
116 | 120 | ||
117 | Undo_ports: | 121 | Undo_ports: |
@@ -142,7 +146,7 @@ static int sas_get_linkerrors(struct sas_phy *phy) | |||
142 | return sas_smp_get_phy_events(phy); | 146 | return sas_smp_get_phy_events(phy); |
143 | } | 147 | } |
144 | 148 | ||
145 | static int sas_phy_reset(struct sas_phy *phy, int hard_reset) | 149 | int sas_phy_reset(struct sas_phy *phy, int hard_reset) |
146 | { | 150 | { |
147 | int ret; | 151 | int ret; |
148 | enum phy_func reset_type; | 152 | enum phy_func reset_type; |