diff options
Diffstat (limited to 'drivers/s390/scsi/zfcp_ccw.c')
-rw-r--r-- | drivers/s390/scsi/zfcp_ccw.c | 37 |
1 files changed, 15 insertions, 22 deletions
diff --git a/drivers/s390/scsi/zfcp_ccw.c b/drivers/s390/scsi/zfcp_ccw.c index ce1cc7a11fb4..e8b7cee62046 100644 --- a/drivers/s390/scsi/zfcp_ccw.c +++ b/drivers/s390/scsi/zfcp_ccw.c | |||
@@ -46,10 +46,9 @@ static int zfcp_ccw_activate(struct ccw_device *cdev) | |||
46 | if (!adapter) | 46 | if (!adapter) |
47 | return 0; | 47 | return 0; |
48 | 48 | ||
49 | zfcp_erp_modify_adapter_status(adapter, "ccresu1", NULL, | 49 | zfcp_erp_set_adapter_status(adapter, ZFCP_STATUS_COMMON_RUNNING); |
50 | ZFCP_STATUS_COMMON_RUNNING, ZFCP_SET); | ||
51 | zfcp_erp_adapter_reopen(adapter, ZFCP_STATUS_COMMON_ERP_FAILED, | 50 | zfcp_erp_adapter_reopen(adapter, ZFCP_STATUS_COMMON_ERP_FAILED, |
52 | "ccresu2", NULL); | 51 | "ccresu2"); |
53 | zfcp_erp_wait(adapter); | 52 | zfcp_erp_wait(adapter); |
54 | flush_work(&adapter->scan_work); | 53 | flush_work(&adapter->scan_work); |
55 | 54 | ||
@@ -164,14 +163,7 @@ static int zfcp_ccw_set_online(struct ccw_device *cdev) | |||
164 | BUG_ON(!zfcp_reqlist_isempty(adapter->req_list)); | 163 | BUG_ON(!zfcp_reqlist_isempty(adapter->req_list)); |
165 | adapter->req_no = 0; | 164 | adapter->req_no = 0; |
166 | 165 | ||
167 | zfcp_erp_modify_adapter_status(adapter, "ccsonl1", NULL, | 166 | zfcp_ccw_activate(cdev); |
168 | ZFCP_STATUS_COMMON_RUNNING, ZFCP_SET); | ||
169 | zfcp_erp_adapter_reopen(adapter, ZFCP_STATUS_COMMON_ERP_FAILED, | ||
170 | "ccsonl2", NULL); | ||
171 | zfcp_erp_wait(adapter); | ||
172 | |||
173 | flush_work(&adapter->scan_work); | ||
174 | |||
175 | zfcp_ccw_adapter_put(adapter); | 167 | zfcp_ccw_adapter_put(adapter); |
176 | return 0; | 168 | return 0; |
177 | } | 169 | } |
@@ -190,7 +182,7 @@ static int zfcp_ccw_set_offline(struct ccw_device *cdev) | |||
190 | if (!adapter) | 182 | if (!adapter) |
191 | return 0; | 183 | return 0; |
192 | 184 | ||
193 | zfcp_erp_adapter_shutdown(adapter, 0, "ccsoff1", NULL); | 185 | zfcp_erp_adapter_shutdown(adapter, 0, "ccsoff1"); |
194 | zfcp_erp_wait(adapter); | 186 | zfcp_erp_wait(adapter); |
195 | 187 | ||
196 | zfcp_ccw_adapter_put(adapter); | 188 | zfcp_ccw_adapter_put(adapter); |
@@ -215,25 +207,24 @@ static int zfcp_ccw_notify(struct ccw_device *cdev, int event) | |||
215 | switch (event) { | 207 | switch (event) { |
216 | case CIO_GONE: | 208 | case CIO_GONE: |
217 | dev_warn(&cdev->dev, "The FCP device has been detached\n"); | 209 | dev_warn(&cdev->dev, "The FCP device has been detached\n"); |
218 | zfcp_erp_adapter_shutdown(adapter, 0, "ccnoti1", NULL); | 210 | zfcp_erp_adapter_shutdown(adapter, 0, "ccnoti1"); |
219 | break; | 211 | break; |
220 | case CIO_NO_PATH: | 212 | case CIO_NO_PATH: |
221 | dev_warn(&cdev->dev, | 213 | dev_warn(&cdev->dev, |
222 | "The CHPID for the FCP device is offline\n"); | 214 | "The CHPID for the FCP device is offline\n"); |
223 | zfcp_erp_adapter_shutdown(adapter, 0, "ccnoti2", NULL); | 215 | zfcp_erp_adapter_shutdown(adapter, 0, "ccnoti2"); |
224 | break; | 216 | break; |
225 | case CIO_OPER: | 217 | case CIO_OPER: |
226 | dev_info(&cdev->dev, "The FCP device is operational again\n"); | 218 | dev_info(&cdev->dev, "The FCP device is operational again\n"); |
227 | zfcp_erp_modify_adapter_status(adapter, "ccnoti3", NULL, | 219 | zfcp_erp_set_adapter_status(adapter, |
228 | ZFCP_STATUS_COMMON_RUNNING, | 220 | ZFCP_STATUS_COMMON_RUNNING); |
229 | ZFCP_SET); | ||
230 | zfcp_erp_adapter_reopen(adapter, ZFCP_STATUS_COMMON_ERP_FAILED, | 221 | zfcp_erp_adapter_reopen(adapter, ZFCP_STATUS_COMMON_ERP_FAILED, |
231 | "ccnoti4", NULL); | 222 | "ccnoti4"); |
232 | break; | 223 | break; |
233 | case CIO_BOXED: | 224 | case CIO_BOXED: |
234 | dev_warn(&cdev->dev, "The FCP device did not respond within " | 225 | dev_warn(&cdev->dev, "The FCP device did not respond within " |
235 | "the specified time\n"); | 226 | "the specified time\n"); |
236 | zfcp_erp_adapter_shutdown(adapter, 0, "ccnoti5", NULL); | 227 | zfcp_erp_adapter_shutdown(adapter, 0, "ccnoti5"); |
237 | break; | 228 | break; |
238 | } | 229 | } |
239 | 230 | ||
@@ -252,7 +243,7 @@ static void zfcp_ccw_shutdown(struct ccw_device *cdev) | |||
252 | if (!adapter) | 243 | if (!adapter) |
253 | return; | 244 | return; |
254 | 245 | ||
255 | zfcp_erp_adapter_shutdown(adapter, 0, "ccshut1", NULL); | 246 | zfcp_erp_adapter_shutdown(adapter, 0, "ccshut1"); |
256 | zfcp_erp_wait(adapter); | 247 | zfcp_erp_wait(adapter); |
257 | zfcp_erp_thread_kill(adapter); | 248 | zfcp_erp_thread_kill(adapter); |
258 | 249 | ||
@@ -260,8 +251,10 @@ static void zfcp_ccw_shutdown(struct ccw_device *cdev) | |||
260 | } | 251 | } |
261 | 252 | ||
262 | struct ccw_driver zfcp_ccw_driver = { | 253 | struct ccw_driver zfcp_ccw_driver = { |
263 | .owner = THIS_MODULE, | 254 | .driver = { |
264 | .name = "zfcp", | 255 | .owner = THIS_MODULE, |
256 | .name = "zfcp", | ||
257 | }, | ||
265 | .ids = zfcp_ccw_device_id, | 258 | .ids = zfcp_ccw_device_id, |
266 | .probe = zfcp_ccw_probe, | 259 | .probe = zfcp_ccw_probe, |
267 | .remove = zfcp_ccw_remove, | 260 | .remove = zfcp_ccw_remove, |