Lines Matching refs:erp

52 dasd_3990_erp_cleanup(struct dasd_ccw_req * erp, char final_status)  in dasd_3990_erp_cleanup()  argument
54 struct dasd_ccw_req *cqr = erp->refers; in dasd_3990_erp_cleanup()
56 dasd_free_erp_request(erp, erp->memdev); in dasd_3990_erp_cleanup()
70 static void dasd_3990_erp_block_queue(struct dasd_ccw_req *erp, int expires) in dasd_3990_erp_block_queue() argument
73 struct dasd_device *device = erp->startdev; in dasd_3990_erp_block_queue()
82 erp->status = DASD_CQR_FILLED; in dasd_3990_erp_block_queue()
83 if (erp->block) in dasd_3990_erp_block_queue()
84 dasd_block_set_timer(erp->block, expires); in dasd_3990_erp_block_queue()
102 dasd_3990_erp_int_req(struct dasd_ccw_req * erp) in dasd_3990_erp_int_req() argument
105 struct dasd_device *device = erp->startdev; in dasd_3990_erp_int_req()
110 if (erp->function != dasd_3990_erp_int_req) { in dasd_3990_erp_int_req()
112 erp->retries = 256; in dasd_3990_erp_int_req()
113 erp->function = dasd_3990_erp_int_req; in dasd_3990_erp_int_req()
122 dasd_3990_erp_block_queue(erp, 60*HZ); in dasd_3990_erp_int_req()
125 return erp; in dasd_3990_erp_int_req()
144 dasd_3990_erp_alternate_path(struct dasd_ccw_req * erp) in dasd_3990_erp_alternate_path() argument
146 struct dasd_device *device = erp->startdev; in dasd_3990_erp_alternate_path()
154 if (erp->lpm == 0) in dasd_3990_erp_alternate_path()
155 erp->lpm = device->path_data.opm & in dasd_3990_erp_alternate_path()
156 ~(erp->irb.esw.esw0.sublog.lpum); in dasd_3990_erp_alternate_path()
158 erp->lpm &= ~(erp->irb.esw.esw0.sublog.lpum); in dasd_3990_erp_alternate_path()
160 if ((erp->lpm & opm) != 0x00) { in dasd_3990_erp_alternate_path()
164 erp->lpm, erp->irb.esw.esw0.sublog.lpum, opm); in dasd_3990_erp_alternate_path()
167 erp->status = DASD_CQR_FILLED; in dasd_3990_erp_alternate_path()
168 erp->retries = 10; in dasd_3990_erp_alternate_path()
172 "/opm=%x)\n", erp->irb.esw.esw0.sublog.lpum, opm); in dasd_3990_erp_alternate_path()
175 erp->status = DASD_CQR_FAILED; in dasd_3990_erp_alternate_path()
195 dasd_3990_erp_DCTL(struct dasd_ccw_req * erp, char modifier) in dasd_3990_erp_DCTL() argument
198 struct dasd_device *device = erp->startdev; in dasd_3990_erp_DCTL()
203 dctl_cqr = dasd_alloc_erp_request((char *) &erp->magic, 1, in dasd_3990_erp_DCTL()
209 erp->status = DASD_CQR_FAILED; in dasd_3990_erp_DCTL()
210 return erp; in dasd_3990_erp_DCTL()
223 dctl_cqr->flags = erp->flags; in dasd_3990_erp_DCTL()
225 dctl_cqr->refers = erp; in dasd_3990_erp_DCTL()
228 dctl_cqr->magic = erp->magic; in dasd_3990_erp_DCTL()
261 static struct dasd_ccw_req *dasd_3990_erp_action_1_sec(struct dasd_ccw_req *erp) in dasd_3990_erp_action_1_sec() argument
263 erp->function = dasd_3990_erp_action_1_sec; in dasd_3990_erp_action_1_sec()
264 dasd_3990_erp_alternate_path(erp); in dasd_3990_erp_action_1_sec()
265 return erp; in dasd_3990_erp_action_1_sec()
268 static struct dasd_ccw_req *dasd_3990_erp_action_1(struct dasd_ccw_req *erp) in dasd_3990_erp_action_1() argument
270 erp->function = dasd_3990_erp_action_1; in dasd_3990_erp_action_1()
271 dasd_3990_erp_alternate_path(erp); in dasd_3990_erp_action_1()
272 if (erp->status == DASD_CQR_FAILED && in dasd_3990_erp_action_1()
273 !test_bit(DASD_CQR_VERIFY_PATH, &erp->flags)) { in dasd_3990_erp_action_1()
274 erp->status = DASD_CQR_FILLED; in dasd_3990_erp_action_1()
275 erp->retries = 10; in dasd_3990_erp_action_1()
276 erp->lpm = erp->startdev->path_data.opm; in dasd_3990_erp_action_1()
277 erp->function = dasd_3990_erp_action_1_sec; in dasd_3990_erp_action_1()
279 return erp; in dasd_3990_erp_action_1()
301 dasd_3990_erp_action_4(struct dasd_ccw_req * erp, char *sense) in dasd_3990_erp_action_4() argument
304 struct dasd_device *device = erp->startdev; in dasd_3990_erp_action_4()
309 if (erp->function != dasd_3990_erp_action_4) { in dasd_3990_erp_action_4()
314 erp->retries = 256; in dasd_3990_erp_action_4()
315 erp->function = dasd_3990_erp_action_4; in dasd_3990_erp_action_4()
323 erp->retries); in dasd_3990_erp_action_4()
325 dasd_3990_erp_block_queue(erp, 30*HZ); in dasd_3990_erp_action_4()
331 erp->retries); in dasd_3990_erp_action_4()
332 dasd_3990_erp_block_queue(erp, HZ); in dasd_3990_erp_action_4()
338 erp->retries); in dasd_3990_erp_action_4()
339 erp->status = DASD_CQR_FILLED; in dasd_3990_erp_action_4()
343 return erp; in dasd_3990_erp_action_4()
368 dasd_3990_erp_action_5(struct dasd_ccw_req * erp) in dasd_3990_erp_action_5() argument
372 erp->retries = 10; in dasd_3990_erp_action_5()
373 erp->function = dasd_3990_erp_action_5; in dasd_3990_erp_action_5()
375 return erp; in dasd_3990_erp_action_5()
394 dasd_3990_handle_env_data(struct dasd_ccw_req * erp, char *sense) in dasd_3990_handle_env_data() argument
397 struct dasd_device *device = erp->startdev; in dasd_3990_handle_env_data()
983 dasd_eer_write(device, erp->refers, in dasd_3990_handle_env_data()
1031 dasd_3990_erp_com_rej(struct dasd_ccw_req * erp, char *sense) in dasd_3990_erp_com_rej() argument
1034 struct dasd_device *device = erp->startdev; in dasd_3990_erp_com_rej()
1036 erp->function = dasd_3990_erp_com_rej; in dasd_3990_erp_com_rej()
1044 dasd_3990_handle_env_data(erp, sense); in dasd_3990_erp_com_rej()
1046 erp->retries = 5; in dasd_3990_erp_com_rej()
1051 erp = dasd_3990_erp_cleanup(erp, DASD_CQR_FAILED); in dasd_3990_erp_com_rej()
1058 erp = dasd_3990_erp_cleanup(erp, DASD_CQR_FAILED); in dasd_3990_erp_com_rej()
1061 return erp; in dasd_3990_erp_com_rej()
1077 dasd_3990_erp_bus_out(struct dasd_ccw_req * erp) in dasd_3990_erp_bus_out() argument
1080 struct dasd_device *device = erp->startdev; in dasd_3990_erp_bus_out()
1085 if (erp->function != dasd_3990_erp_bus_out) { in dasd_3990_erp_bus_out()
1086 erp->retries = 256; in dasd_3990_erp_bus_out()
1087 erp->function = dasd_3990_erp_bus_out; in dasd_3990_erp_bus_out()
1096 dasd_3990_erp_block_queue(erp, 60*HZ); in dasd_3990_erp_bus_out()
1100 return erp; in dasd_3990_erp_bus_out()
1116 dasd_3990_erp_equip_check(struct dasd_ccw_req * erp, char *sense) in dasd_3990_erp_equip_check() argument
1119 struct dasd_device *device = erp->startdev; in dasd_3990_erp_equip_check()
1121 erp->function = dasd_3990_erp_equip_check; in dasd_3990_erp_equip_check()
1132 erp = dasd_3990_erp_action_1(erp); in dasd_3990_erp_equip_check()
1139 dasd_3990_handle_env_data(erp, sense); in dasd_3990_erp_equip_check()
1141 erp = dasd_3990_erp_action_4(erp, sense); in dasd_3990_erp_equip_check()
1149 erp = dasd_3990_erp_action_1(erp); in dasd_3990_erp_equip_check()
1157 erp = dasd_3990_erp_action_5(erp); in dasd_3990_erp_equip_check()
1159 return erp; in dasd_3990_erp_equip_check()
1175 dasd_3990_erp_data_check(struct dasd_ccw_req * erp, char *sense) in dasd_3990_erp_data_check() argument
1178 struct dasd_device *device = erp->startdev; in dasd_3990_erp_data_check()
1180 erp->function = dasd_3990_erp_data_check; in dasd_3990_erp_data_check()
1199 erp = dasd_3990_erp_action_4(erp, sense); in dasd_3990_erp_data_check()
1207 erp = dasd_3990_erp_action_1(erp); in dasd_3990_erp_data_check()
1215 erp = dasd_3990_erp_action_5(erp); in dasd_3990_erp_data_check()
1218 return erp; in dasd_3990_erp_data_check()
1234 dasd_3990_erp_overrun(struct dasd_ccw_req * erp, char *sense) in dasd_3990_erp_overrun() argument
1237 struct dasd_device *device = erp->startdev; in dasd_3990_erp_overrun()
1239 erp->function = dasd_3990_erp_overrun; in dasd_3990_erp_overrun()
1245 erp = dasd_3990_erp_action_5(erp); in dasd_3990_erp_overrun()
1247 return erp; in dasd_3990_erp_overrun()
1263 dasd_3990_erp_inv_format(struct dasd_ccw_req * erp, char *sense) in dasd_3990_erp_inv_format() argument
1266 struct dasd_device *device = erp->startdev; in dasd_3990_erp_inv_format()
1268 erp->function = dasd_3990_erp_inv_format; in dasd_3990_erp_inv_format()
1276 dasd_3990_handle_env_data(erp, sense); in dasd_3990_erp_inv_format()
1278 erp = dasd_3990_erp_action_4(erp, sense); in dasd_3990_erp_inv_format()
1286 erp = dasd_3990_erp_cleanup(erp, DASD_CQR_FAILED); in dasd_3990_erp_inv_format()
1289 return erp; in dasd_3990_erp_inv_format()
1330 dasd_3990_erp_env_data(struct dasd_ccw_req * erp, char *sense) in dasd_3990_erp_env_data() argument
1333 struct dasd_device *device = erp->startdev; in dasd_3990_erp_env_data()
1335 erp->function = dasd_3990_erp_env_data; in dasd_3990_erp_env_data()
1339 dasd_3990_handle_env_data(erp, sense); in dasd_3990_erp_env_data()
1343 erp = dasd_3990_erp_action_4(erp, sense); in dasd_3990_erp_env_data()
1345 erp->status = DASD_CQR_FILLED; in dasd_3990_erp_env_data()
1348 return erp; in dasd_3990_erp_env_data()
1391 dasd_3990_erp_file_prot(struct dasd_ccw_req * erp) in dasd_3990_erp_file_prot() argument
1394 struct dasd_device *device = erp->startdev; in dasd_3990_erp_file_prot()
1399 return dasd_3990_erp_cleanup(erp, DASD_CQR_FAILED); in dasd_3990_erp_file_prot()
1419 struct dasd_ccw_req *erp) in dasd_3990_erp_inspect_alias() argument
1421 struct dasd_ccw_req *cqr = erp->refers; in dasd_3990_erp_inspect_alias()
1427 sense = dasd_get_sense(&erp->refers->irb); in dasd_3990_erp_inspect_alias()
1452 erp->startdev = cqr->block->base; in dasd_3990_erp_inspect_alias()
1453 erp->function = dasd_3990_erp_inspect_alias; in dasd_3990_erp_inspect_alias()
1454 return erp; in dasd_3990_erp_inspect_alias()
1475 dasd_3990_erp_inspect_24(struct dasd_ccw_req * erp, char *sense) in dasd_3990_erp_inspect_24() argument
1483 erp_filled = dasd_3990_erp_com_rej(erp, sense); in dasd_3990_erp_inspect_24()
1487 erp_filled = dasd_3990_erp_int_req(erp); in dasd_3990_erp_inspect_24()
1491 erp_filled = dasd_3990_erp_bus_out(erp); in dasd_3990_erp_inspect_24()
1495 erp_filled = dasd_3990_erp_equip_check(erp, sense); in dasd_3990_erp_inspect_24()
1499 erp_filled = dasd_3990_erp_data_check(erp, sense); in dasd_3990_erp_inspect_24()
1503 erp_filled = dasd_3990_erp_overrun(erp, sense); in dasd_3990_erp_inspect_24()
1507 erp_filled = dasd_3990_erp_inv_format(erp, sense); in dasd_3990_erp_inspect_24()
1511 erp_filled = dasd_3990_erp_EOC(erp, sense); in dasd_3990_erp_inspect_24()
1515 erp_filled = dasd_3990_erp_env_data(erp, sense); in dasd_3990_erp_inspect_24()
1519 erp_filled = dasd_3990_erp_no_rec(erp, sense); in dasd_3990_erp_inspect_24()
1523 erp_filled = dasd_3990_erp_file_prot(erp); in dasd_3990_erp_inspect_24()
1528 erp_filled = erp; in dasd_3990_erp_inspect_24()
1555 dasd_3990_erp_action_10_32(struct dasd_ccw_req * erp, char *sense) in dasd_3990_erp_action_10_32() argument
1558 struct dasd_device *device = erp->startdev; in dasd_3990_erp_action_10_32()
1560 erp->retries = 256; in dasd_3990_erp_action_10_32()
1561 erp->function = dasd_3990_erp_action_10_32; in dasd_3990_erp_action_10_32()
1565 return erp; in dasd_3990_erp_action_10_32()
1595 struct dasd_ccw_req *erp; in dasd_3990_erp_action_1B_32() local
1641 erp = dasd_alloc_erp_request((char *) &cqr->magic, in dasd_3990_erp_action_1B_32()
1646 if (IS_ERR(erp)) { in dasd_3990_erp_action_1B_32()
1654 DE_data = erp->data; in dasd_3990_erp_action_1B_32()
1664 LO_data = erp->data + sizeof(struct DE_eckd_data); in dasd_3990_erp_action_1B_32()
1693 ccw = erp->cpaddr; in dasd_3990_erp_action_1B_32()
1714 erp->flags = default_erp->flags; in dasd_3990_erp_action_1B_32()
1715 erp->function = dasd_3990_erp_action_1B_32; in dasd_3990_erp_action_1B_32()
1716 erp->refers = default_erp->refers; in dasd_3990_erp_action_1B_32()
1717 erp->startdev = device; in dasd_3990_erp_action_1B_32()
1718 erp->memdev = device; in dasd_3990_erp_action_1B_32()
1719 erp->magic = default_erp->magic; in dasd_3990_erp_action_1B_32()
1720 erp->expires = default_erp->expires; in dasd_3990_erp_action_1B_32()
1721 erp->retries = 256; in dasd_3990_erp_action_1B_32()
1722 erp->buildclk = get_tod_clock(); in dasd_3990_erp_action_1B_32()
1723 erp->status = DASD_CQR_FILLED; in dasd_3990_erp_action_1B_32()
1728 return erp; in dasd_3990_erp_action_1B_32()
1754 struct dasd_ccw_req *erp; in dasd_3990_update_1B() local
1801 erp = previous_erp; in dasd_3990_update_1B()
1804 LO_data = erp->data + sizeof(struct DE_eckd_data); in dasd_3990_update_1B()
1835 ccw = erp->cpaddr; /* addr of DE ccw */ in dasd_3990_update_1B()
1840 erp->status = DASD_CQR_FILLED; in dasd_3990_update_1B()
1842 return erp; in dasd_3990_update_1B()
1864 dasd_3990_erp_compound_retry(struct dasd_ccw_req * erp, char *sense) in dasd_3990_erp_compound_retry() argument
1869 erp->retries = 1; in dasd_3990_erp_compound_retry()
1873 erp->retries = 2; in dasd_3990_erp_compound_retry()
1877 erp->retries = 10; in dasd_3990_erp_compound_retry()
1881 erp->retries = 256; in dasd_3990_erp_compound_retry()
1888 erp->function = dasd_3990_erp_compound_retry; in dasd_3990_erp_compound_retry()
1908 dasd_3990_erp_compound_path(struct dasd_ccw_req * erp, char *sense) in dasd_3990_erp_compound_path() argument
1911 dasd_3990_erp_alternate_path(erp); in dasd_3990_erp_compound_path()
1913 if (erp->status == DASD_CQR_FAILED && in dasd_3990_erp_compound_path()
1914 !test_bit(DASD_CQR_VERIFY_PATH, &erp->flags)) { in dasd_3990_erp_compound_path()
1917 erp->lpm = erp->startdev->path_data.opm; in dasd_3990_erp_compound_path()
1918 erp->status = DASD_CQR_NEED_ERP; in dasd_3990_erp_compound_path()
1922 erp->function = dasd_3990_erp_compound_path; in dasd_3990_erp_compound_path()
1941 dasd_3990_erp_compound_code(struct dasd_ccw_req * erp, char *sense) in dasd_3990_erp_compound_code() argument
1950 erp = dasd_3990_erp_DCTL(erp, 0x20); in dasd_3990_erp_compound_code()
1955 erp->retries = 1; in dasd_3990_erp_compound_code()
1957 dasd_3990_erp_block_queue (erp, 5*HZ); in dasd_3990_erp_compound_code()
1966 erp->function = dasd_3990_erp_compound_code; in dasd_3990_erp_compound_code()
1968 return erp; in dasd_3990_erp_compound_code()
1989 dasd_3990_erp_compound_config(struct dasd_ccw_req * erp, char *sense) in dasd_3990_erp_compound_config() argument
1997 struct dasd_device *device = erp->startdev; in dasd_3990_erp_compound_config()
2004 erp->function = dasd_3990_erp_compound_config; in dasd_3990_erp_compound_config()
2024 dasd_3990_erp_compound(struct dasd_ccw_req * erp, char *sense) in dasd_3990_erp_compound() argument
2027 if ((erp->function == dasd_3990_erp_compound_retry) && in dasd_3990_erp_compound()
2028 (erp->status == DASD_CQR_NEED_ERP)) { in dasd_3990_erp_compound()
2030 dasd_3990_erp_compound_path(erp, sense); in dasd_3990_erp_compound()
2033 if ((erp->function == dasd_3990_erp_compound_path) && in dasd_3990_erp_compound()
2034 (erp->status == DASD_CQR_NEED_ERP)) { in dasd_3990_erp_compound()
2036 erp = dasd_3990_erp_compound_code(erp, sense); in dasd_3990_erp_compound()
2039 if ((erp->function == dasd_3990_erp_compound_code) && in dasd_3990_erp_compound()
2040 (erp->status == DASD_CQR_NEED_ERP)) { in dasd_3990_erp_compound()
2042 dasd_3990_erp_compound_config(erp, sense); in dasd_3990_erp_compound()
2046 if (erp->status == DASD_CQR_NEED_ERP) in dasd_3990_erp_compound()
2047 erp->status = DASD_CQR_FAILED; in dasd_3990_erp_compound()
2049 return erp; in dasd_3990_erp_compound()
2098 dasd_3990_erp_inspect_32(struct dasd_ccw_req * erp, char *sense) in dasd_3990_erp_inspect_32() argument
2101 struct dasd_device *device = erp->startdev; in dasd_3990_erp_inspect_32()
2103 erp->function = dasd_3990_erp_inspect_32; in dasd_3990_erp_inspect_32()
2112 dasd_3990_erp_compound_retry(erp, sense); in dasd_3990_erp_inspect_32()
2129 erp = dasd_3990_erp_cleanup(erp, DASD_CQR_FAILED); in dasd_3990_erp_inspect_32()
2134 erp = dasd_3990_erp_int_req(erp); in dasd_3990_erp_inspect_32()
2142 erp = dasd_3990_erp_cleanup(erp, DASD_CQR_FAILED); in dasd_3990_erp_inspect_32()
2146 erp = dasd_3990_erp_action_10_32(erp, sense); in dasd_3990_erp_inspect_32()
2156 erp = dasd_3990_erp_cleanup(erp, DASD_CQR_FAILED); in dasd_3990_erp_inspect_32()
2161 erp = dasd_3990_erp_action_1B_32(erp, sense); in dasd_3990_erp_inspect_32()
2180 erp = dasd_3990_erp_action_4(erp, sense); in dasd_3990_erp_inspect_32()
2187 erp = dasd_3990_erp_action_4(erp, sense); in dasd_3990_erp_inspect_32()
2195 return erp; in dasd_3990_erp_inspect_32()
2220 dasd_3990_erp_control_check(struct dasd_ccw_req *erp) in dasd_3990_erp_control_check() argument
2222 struct dasd_device *device = erp->startdev; in dasd_3990_erp_control_check()
2224 if (scsw_cstat(&erp->refers->irb.scsw) & (SCHN_STAT_INTF_CTRL_CHK in dasd_3990_erp_control_check()
2228 erp = dasd_3990_erp_action_4(erp, NULL); in dasd_3990_erp_control_check()
2230 return erp; in dasd_3990_erp_control_check()
2246 dasd_3990_erp_inspect(struct dasd_ccw_req *erp) in dasd_3990_erp_inspect() argument
2253 erp_new = dasd_3990_erp_inspect_alias(erp); in dasd_3990_erp_inspect()
2261 sense = dasd_get_sense(&erp->refers->irb); in dasd_3990_erp_inspect()
2263 erp_new = dasd_3990_erp_control_check(erp); in dasd_3990_erp_inspect()
2268 erp_new = dasd_3990_erp_inspect_24(erp, sense); in dasd_3990_erp_inspect()
2273 erp_new = dasd_3990_erp_inspect_32(erp, sense); in dasd_3990_erp_inspect()
2303 struct dasd_ccw_req *erp; in dasd_3990_erp_add_erp() local
2318 erp = dasd_alloc_erp_request((char *) &cqr->magic, in dasd_3990_erp_add_erp()
2320 if (IS_ERR(erp)) { in dasd_3990_erp_add_erp()
2333 return erp; in dasd_3990_erp_add_erp()
2339 erp->cpmode = 1; in dasd_3990_erp_add_erp()
2340 erp->cpaddr = PTR_ALIGN(erp->data, 64); in dasd_3990_erp_add_erp()
2341 tcw = erp->cpaddr; in dasd_3990_erp_add_erp()
2347 erp->cpaddr = cqr->cpaddr; in dasd_3990_erp_add_erp()
2350 ccw = erp->cpaddr; in dasd_3990_erp_add_erp()
2358 erp->flags = cqr->flags; in dasd_3990_erp_add_erp()
2359 erp->function = dasd_3990_erp_add_erp; in dasd_3990_erp_add_erp()
2360 erp->refers = cqr; in dasd_3990_erp_add_erp()
2361 erp->startdev = device; in dasd_3990_erp_add_erp()
2362 erp->memdev = device; in dasd_3990_erp_add_erp()
2363 erp->block = cqr->block; in dasd_3990_erp_add_erp()
2364 erp->magic = cqr->magic; in dasd_3990_erp_add_erp()
2365 erp->expires = cqr->expires; in dasd_3990_erp_add_erp()
2366 erp->retries = 256; in dasd_3990_erp_add_erp()
2367 erp->buildclk = get_tod_clock(); in dasd_3990_erp_add_erp()
2368 erp->status = DASD_CQR_FILLED; in dasd_3990_erp_add_erp()
2370 return erp; in dasd_3990_erp_add_erp()
2392 struct dasd_ccw_req *erp = NULL; in dasd_3990_erp_additional_erp() local
2395 erp = dasd_3990_erp_add_erp(cqr); in dasd_3990_erp_additional_erp()
2397 if (IS_ERR(erp)) in dasd_3990_erp_additional_erp()
2398 return erp; in dasd_3990_erp_additional_erp()
2401 if (erp != cqr) { in dasd_3990_erp_additional_erp()
2403 erp = dasd_3990_erp_inspect(erp); in dasd_3990_erp_additional_erp()
2406 return erp; in dasd_3990_erp_additional_erp()
2523 dasd_3990_erp_further_erp(struct dasd_ccw_req *erp) in dasd_3990_erp_further_erp() argument
2526 struct dasd_device *device = erp->startdev; in dasd_3990_erp_further_erp()
2527 char *sense = dasd_get_sense(&erp->irb); in dasd_3990_erp_further_erp()
2530 if ((erp->function == dasd_3990_erp_bus_out) || in dasd_3990_erp_further_erp()
2531 (erp->function == dasd_3990_erp_action_1) || in dasd_3990_erp_further_erp()
2532 (erp->function == dasd_3990_erp_action_4)) { in dasd_3990_erp_further_erp()
2534 erp = dasd_3990_erp_action_1(erp); in dasd_3990_erp_further_erp()
2536 } else if (erp->function == dasd_3990_erp_action_1_sec) { in dasd_3990_erp_further_erp()
2537 erp = dasd_3990_erp_action_1_sec(erp); in dasd_3990_erp_further_erp()
2538 } else if (erp->function == dasd_3990_erp_action_5) { in dasd_3990_erp_further_erp()
2542 erp = dasd_3990_erp_action_1(erp); in dasd_3990_erp_further_erp()
2552 erp = dasd_3990_erp_DCTL(erp, 0x20); in dasd_3990_erp_further_erp()
2557 erp = dasd_3990_erp_DCTL(erp, 0x40); in dasd_3990_erp_further_erp()
2562 erp = dasd_3990_erp_DCTL(erp, 0x80); in dasd_3990_erp_further_erp()
2575 ((erp->function == dasd_3990_erp_compound_retry) || in dasd_3990_erp_further_erp()
2576 (erp->function == dasd_3990_erp_compound_path) || in dasd_3990_erp_further_erp()
2577 (erp->function == dasd_3990_erp_compound_code) || in dasd_3990_erp_further_erp()
2578 (erp->function == dasd_3990_erp_compound_config))) { in dasd_3990_erp_further_erp()
2580 erp = dasd_3990_erp_compound(erp, sense); in dasd_3990_erp_further_erp()
2588 "ERP %p has run out of retries and failed\n", erp); in dasd_3990_erp_further_erp()
2590 erp->status = DASD_CQR_FAILED; in dasd_3990_erp_further_erp()
2593 return erp; in dasd_3990_erp_further_erp()
2618 struct dasd_ccw_req *erp) in dasd_3990_erp_handle_match_erp()
2626 while (erp_done != erp) { in dasd_3990_erp_handle_match_erp()
2643 if (erp->retries > 0) { in dasd_3990_erp_handle_match_erp()
2645 char *sense = dasd_get_sense(&erp->refers->irb); in dasd_3990_erp_handle_match_erp()
2648 if (sense && erp->function == dasd_3990_erp_action_4) { in dasd_3990_erp_handle_match_erp()
2650 erp = dasd_3990_erp_action_4(erp, sense); in dasd_3990_erp_handle_match_erp()
2653 erp->function == dasd_3990_erp_action_1B_32) { in dasd_3990_erp_handle_match_erp()
2655 erp = dasd_3990_update_1B(erp, sense); in dasd_3990_erp_handle_match_erp()
2657 } else if (sense && erp->function == dasd_3990_erp_int_req) { in dasd_3990_erp_handle_match_erp()
2659 erp = dasd_3990_erp_int_req(erp); in dasd_3990_erp_handle_match_erp()
2665 erp->retries, erp); in dasd_3990_erp_handle_match_erp()
2668 erp->status = DASD_CQR_FILLED; in dasd_3990_erp_handle_match_erp()
2674 erp = dasd_3990_erp_further_erp(erp); in dasd_3990_erp_handle_match_erp()
2677 return erp; in dasd_3990_erp_handle_match_erp()
2701 struct dasd_ccw_req *erp = NULL; in dasd_3990_erp_action() local
2734 erp = dasd_3990_erp_in_erp(cqr); in dasd_3990_erp_action()
2736 if (erp == NULL) { in dasd_3990_erp_action()
2738 erp = dasd_3990_erp_additional_erp(cqr); in dasd_3990_erp_action()
2739 if (IS_ERR(erp)) in dasd_3990_erp_action()
2740 return erp; in dasd_3990_erp_action()
2743 erp = dasd_3990_erp_handle_match_erp(cqr, erp); in dasd_3990_erp_action()
2750 for (temp_erp = erp; in dasd_3990_erp_action()
2761 if (list_empty(&erp->blocklist)) { in dasd_3990_erp_action()
2764 list_add_tail(&erp->blocklist, &cqr->blocklist); in dasd_3990_erp_action()
2769 return erp; in dasd_3990_erp_action()