cqr 704 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr, cqr 739 drivers/s390/block/dasd.c device = cqr->startdev; cqr 814 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr, cqr 824 drivers/s390/block/dasd.c device = cqr->startdev; cqr 831 drivers/s390/block/dasd.c if (!cqr->buildclk || !cqr->startclk || cqr 832 drivers/s390/block/dasd.c !cqr->stopclk || !cqr->endclk || cqr 836 drivers/s390/block/dasd.c strtime = ((cqr->startclk - cqr->buildclk) >> 12); cqr 837 drivers/s390/block/dasd.c irqtime = ((cqr->stopclk - cqr->startclk) >> 12); cqr 838 drivers/s390/block/dasd.c endtime = ((cqr->endclk - cqr->stopclk) >> 12); cqr 839 drivers/s390/block/dasd.c tottime = ((cqr->endclk - cqr->buildclk) >> 12); cqr 858 drivers/s390/block/dasd.c cqr->startdev != block->base, cqr 859 drivers/s390/block/dasd.c cqr->cpmode == 1, cqr 876 drivers/s390/block/dasd.c cqr->startdev != block->base, cqr 877 drivers/s390/block/dasd.c cqr->cpmode == 1, cqr 894 drivers/s390/block/dasd.c cqr->startdev != block->base, cqr 895 drivers/s390/block/dasd.c cqr->cpmode == 1, cqr 1155 drivers/s390/block/dasd.c #define dasd_profile_start(block, cqr, req) do {} while (0) cqr 1156 drivers/s390/block/dasd.c #define dasd_profile_end(block, cqr, req) do {} while (0) cqr 1233 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr) cqr 1243 drivers/s390/block/dasd.c if (!cqr) cqr 1244 drivers/s390/block/dasd.c size += (sizeof(*cqr) + 7L) & -8L; cqr 1251 drivers/s390/block/dasd.c if (!cqr) { cqr 1252 drivers/s390/block/dasd.c cqr = (void *) data; cqr 1253 drivers/s390/block/dasd.c data += (sizeof(*cqr) + 7L) & -8L; cqr 1255 drivers/s390/block/dasd.c memset(cqr, 0, sizeof(*cqr)); cqr 1256 drivers/s390/block/dasd.c cqr->mem_chunk = chunk; cqr 1258 drivers/s390/block/dasd.c cqr->cpaddr = data; cqr 1260 drivers/s390/block/dasd.c memset(cqr->cpaddr, 0, cplength * sizeof(struct ccw1)); cqr 1263 drivers/s390/block/dasd.c cqr->data = data; cqr 1264 drivers/s390/block/dasd.c memset(cqr->data, 0, datasize); cqr 1266 drivers/s390/block/dasd.c cqr->magic = magic; cqr 1267 drivers/s390/block/dasd.c set_bit(DASD_CQR_FLAGS_USE_ERP, &cqr->flags); cqr 1269 drivers/s390/block/dasd.c return cqr; cqr 1277 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr; cqr 1282 drivers/s390/block/dasd.c cqr_size = (sizeof(*cqr) + 7L) & -8L; cqr 1290 drivers/s390/block/dasd.c cqr = dasd_alloc_chunk(&device->ese_chunks, size); cqr 1292 drivers/s390/block/dasd.c if (!cqr) cqr 1294 drivers/s390/block/dasd.c memset(cqr, 0, sizeof(*cqr)); cqr 1295 drivers/s390/block/dasd.c data = (char *)cqr + cqr_size; cqr 1296 drivers/s390/block/dasd.c cqr->cpaddr = NULL; cqr 1298 drivers/s390/block/dasd.c cqr->cpaddr = data; cqr 1300 drivers/s390/block/dasd.c memset(cqr->cpaddr, 0, cplength * sizeof(struct ccw1)); cqr 1302 drivers/s390/block/dasd.c cqr->data = NULL; cqr 1304 drivers/s390/block/dasd.c cqr->data = data; cqr 1305 drivers/s390/block/dasd.c memset(cqr->data, 0, datasize); cqr 1308 drivers/s390/block/dasd.c cqr->magic = magic; cqr 1309 drivers/s390/block/dasd.c set_bit(DASD_CQR_FLAGS_USE_ERP, &cqr->flags); cqr 1312 drivers/s390/block/dasd.c return cqr; cqr 1316 drivers/s390/block/dasd.c void dasd_sfree_request(struct dasd_ccw_req *cqr, struct dasd_device *device) cqr 1321 drivers/s390/block/dasd.c dasd_free_chunk(&device->ccw_chunks, cqr->mem_chunk); cqr 1327 drivers/s390/block/dasd.c void dasd_ffree_request(struct dasd_ccw_req *cqr, struct dasd_device *device) cqr 1332 drivers/s390/block/dasd.c dasd_free_chunk(&device->ese_chunks, cqr); cqr 1341 drivers/s390/block/dasd.c static inline int dasd_check_cqr(struct dasd_ccw_req *cqr) cqr 1345 drivers/s390/block/dasd.c if (cqr == NULL) cqr 1347 drivers/s390/block/dasd.c device = cqr->startdev; cqr 1348 drivers/s390/block/dasd.c if (strncmp((char *) &cqr->magic, device->discipline->ebcname, 4)) { cqr 1352 drivers/s390/block/dasd.c cqr->magic, cqr 1365 drivers/s390/block/dasd.c int dasd_term_IO(struct dasd_ccw_req *cqr) cqr 1372 drivers/s390/block/dasd.c rc = dasd_check_cqr(cqr); cqr 1376 drivers/s390/block/dasd.c device = (struct dasd_device *) cqr->startdev; cqr 1377 drivers/s390/block/dasd.c while ((retries < 5) && (cqr->status == DASD_CQR_IN_IO)) { cqr 1378 drivers/s390/block/dasd.c rc = ccw_device_clear(device->cdev, (long) cqr); cqr 1381 drivers/s390/block/dasd.c cqr->status = DASD_CQR_CLEAR_PENDING; cqr 1382 drivers/s390/block/dasd.c cqr->stopclk = get_tod_clock(); cqr 1383 drivers/s390/block/dasd.c cqr->starttime = 0; cqr 1386 drivers/s390/block/dasd.c cqr); cqr 1397 drivers/s390/block/dasd.c cqr->status = DASD_CQR_CLEARED; cqr 1398 drivers/s390/block/dasd.c cqr->stopclk = get_tod_clock(); cqr 1399 drivers/s390/block/dasd.c cqr->starttime = 0; cqr 1401 drivers/s390/block/dasd.c cqr->retries = -1; cqr 1426 drivers/s390/block/dasd.c int dasd_start_IO(struct dasd_ccw_req *cqr) cqr 1433 drivers/s390/block/dasd.c rc = dasd_check_cqr(cqr); cqr 1435 drivers/s390/block/dasd.c cqr->intrc = rc; cqr 1438 drivers/s390/block/dasd.c device = (struct dasd_device *) cqr->startdev; cqr 1439 drivers/s390/block/dasd.c if (((cqr->block && cqr 1440 drivers/s390/block/dasd.c test_bit(DASD_FLAG_LOCK_STOLEN, &cqr->block->base->flags)) || cqr 1442 drivers/s390/block/dasd.c !test_bit(DASD_CQR_ALLOW_SLOCK, &cqr->flags)) { cqr 1444 drivers/s390/block/dasd.c "because of stolen lock", cqr); cqr 1445 drivers/s390/block/dasd.c cqr->status = DASD_CQR_ERROR; cqr 1446 drivers/s390/block/dasd.c cqr->intrc = -EPERM; cqr 1449 drivers/s390/block/dasd.c if (cqr->retries < 0) { cqr 1451 drivers/s390/block/dasd.c sprintf(errorstring, "14 %p", cqr); cqr 1454 drivers/s390/block/dasd.c cqr->status = DASD_CQR_ERROR; cqr 1457 drivers/s390/block/dasd.c cqr->startclk = get_tod_clock(); cqr 1458 drivers/s390/block/dasd.c cqr->starttime = jiffies; cqr 1459 drivers/s390/block/dasd.c cqr->retries--; cqr 1460 drivers/s390/block/dasd.c if (!test_bit(DASD_CQR_VERIFY_PATH, &cqr->flags)) { cqr 1461 drivers/s390/block/dasd.c cqr->lpm &= dasd_path_get_opm(device); cqr 1462 drivers/s390/block/dasd.c if (!cqr->lpm) cqr 1463 drivers/s390/block/dasd.c cqr->lpm = dasd_path_get_opm(device); cqr 1465 drivers/s390/block/dasd.c if (cqr->cpmode == 1) { cqr 1466 drivers/s390/block/dasd.c rc = ccw_device_tm_start(device->cdev, cqr->cpaddr, cqr 1467 drivers/s390/block/dasd.c (long) cqr, cqr->lpm); cqr 1469 drivers/s390/block/dasd.c rc = ccw_device_start(device->cdev, cqr->cpaddr, cqr 1470 drivers/s390/block/dasd.c (long) cqr, cqr->lpm, 0); cqr 1474 drivers/s390/block/dasd.c cqr->status = DASD_CQR_IN_IO; cqr 1488 drivers/s390/block/dasd.c if (test_bit(DASD_CQR_VERIFY_PATH, &cqr->flags)) { cqr 1491 drivers/s390/block/dasd.c cqr->lpm); cqr 1492 drivers/s390/block/dasd.c } else if (cqr->lpm != dasd_path_get_opm(device)) { cqr 1493 drivers/s390/block/dasd.c cqr->lpm = dasd_path_get_opm(device); cqr 1531 drivers/s390/block/dasd.c cqr->intrc = rc; cqr 1581 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr; cqr 1586 drivers/s390/block/dasd.c cqr = (struct dasd_ccw_req *) intparm; cqr 1587 drivers/s390/block/dasd.c if (cqr->status != DASD_CQR_IN_IO) { cqr 1590 drivers/s390/block/dasd.c "%02x", cqr->status); cqr 1601 drivers/s390/block/dasd.c if (!cqr->startdev || cqr 1602 drivers/s390/block/dasd.c device != cqr->startdev || cqr 1603 drivers/s390/block/dasd.c strncmp(cqr->startdev->discipline->ebcname, cqr 1604 drivers/s390/block/dasd.c (char *) &cqr->magic, 4)) { cqr 1612 drivers/s390/block/dasd.c cqr->status = DASD_CQR_QUEUED; cqr 1678 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr, *next, *fcqr; cqr 1686 drivers/s390/block/dasd.c cqr = (struct dasd_ccw_req *) intparm; cqr 1690 drivers/s390/block/dasd.c if (cqr && cqr->status == DASD_CQR_CLEAR_PENDING) { cqr 1691 drivers/s390/block/dasd.c device = cqr->startdev; cqr 1692 drivers/s390/block/dasd.c cqr->status = DASD_CQR_CLEARED; cqr 1714 drivers/s390/block/dasd.c if (!cqr || cqr 1717 drivers/s390/block/dasd.c if (cqr) cqr 1718 drivers/s390/block/dasd.c memcpy(&cqr->irb, irb, sizeof(*irb)); cqr 1737 drivers/s390/block/dasd.c test_bit(DASD_CQR_SUPPRESS_FP, &cqr->flags); cqr 1739 drivers/s390/block/dasd.c test_bit(DASD_CQR_SUPPRESS_NRF, &cqr->flags); cqr 1746 drivers/s390/block/dasd.c dasd_generic_space_exhaust(device, cqr); cqr 1747 drivers/s390/block/dasd.c device->discipline->ext_pool_exhaust(device, cqr); cqr 1756 drivers/s390/block/dasd.c device->discipline->dump_sense(device, cqr, irb); cqr 1757 drivers/s390/block/dasd.c device->discipline->check_for_device_change(device, cqr, irb); cqr 1771 drivers/s390/block/dasd.c if (!cqr) cqr 1774 drivers/s390/block/dasd.c device = (struct dasd_device *) cqr->startdev; cqr 1776 drivers/s390/block/dasd.c strncmp(device->discipline->ebcname, (char *) &cqr->magic, 4)) { cqr 1782 drivers/s390/block/dasd.c if (dasd_ese_needs_format(cqr->block, irb)) { cqr 1783 drivers/s390/block/dasd.c if (rq_data_dir((struct request *)cqr->callback_data) == READ) { cqr 1784 drivers/s390/block/dasd.c device->discipline->ese_read(cqr, irb); cqr 1785 drivers/s390/block/dasd.c cqr->status = DASD_CQR_SUCCESS; cqr 1786 drivers/s390/block/dasd.c cqr->stopclk = now; cqr 1791 drivers/s390/block/dasd.c fcqr = device->discipline->ese_format(device, cqr, irb); cqr 1794 drivers/s390/block/dasd.c cqr->status = DASD_CQR_ERROR; cqr 1801 drivers/s390/block/dasd.c cqr->status = DASD_CQR_QUEUED; cqr 1806 drivers/s390/block/dasd.c cqr->status = DASD_CQR_QUEUED; cqr 1814 drivers/s390/block/dasd.c if (cqr->status == DASD_CQR_CLEAR_PENDING && cqr 1816 drivers/s390/block/dasd.c cqr->status = DASD_CQR_CLEARED; cqr 1824 drivers/s390/block/dasd.c if (cqr->status != DASD_CQR_IN_IO) { cqr 1826 drivers/s390/block/dasd.c "status %02x", dev_name(&cdev->dev), cqr->status); cqr 1835 drivers/s390/block/dasd.c cqr->status = DASD_CQR_SUCCESS; cqr 1836 drivers/s390/block/dasd.c cqr->stopclk = now; cqr 1838 drivers/s390/block/dasd.c if (cqr->devlist.next != &device->ccw_queue) { cqr 1839 drivers/s390/block/dasd.c next = list_entry(cqr->devlist.next, cqr 1847 drivers/s390/block/dasd.c if (cqr->cpmode && dasd_check_hpf_error(irb) && cqr 1854 drivers/s390/block/dasd.c if (!test_bit(DASD_CQR_FLAGS_USE_ERP, &cqr->flags) && cqr 1855 drivers/s390/block/dasd.c cqr->retries > 0) { cqr 1856 drivers/s390/block/dasd.c if (cqr->lpm == dasd_path_get_opm(device)) cqr 1860 drivers/s390/block/dasd.c cqr->retries); cqr 1861 drivers/s390/block/dasd.c if (!test_bit(DASD_CQR_VERIFY_PATH, &cqr->flags)) cqr 1862 drivers/s390/block/dasd.c cqr->lpm = dasd_path_get_opm(device); cqr 1863 drivers/s390/block/dasd.c cqr->status = DASD_CQR_QUEUED; cqr 1864 drivers/s390/block/dasd.c next = cqr; cqr 1866 drivers/s390/block/dasd.c cqr->status = DASD_CQR_ERROR; cqr 1912 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr; cqr 1921 drivers/s390/block/dasd.c cqr = list_entry(l, struct dasd_ccw_req, devlist); cqr 1922 drivers/s390/block/dasd.c if (cqr->status == DASD_CQR_QUEUED && cqr 1923 drivers/s390/block/dasd.c ref_cqr->block == cqr->block) { cqr 1924 drivers/s390/block/dasd.c cqr->status = DASD_CQR_CLEARED; cqr 1937 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr; cqr 1941 drivers/s390/block/dasd.c cqr = list_entry(l, struct dasd_ccw_req, devlist); cqr 1944 drivers/s390/block/dasd.c if (cqr->status == DASD_CQR_QUEUED || cqr 1945 drivers/s390/block/dasd.c cqr->status == DASD_CQR_IN_IO || cqr 1946 drivers/s390/block/dasd.c cqr->status == DASD_CQR_CLEAR_PENDING) cqr 1948 drivers/s390/block/dasd.c if (cqr->status == DASD_CQR_ERROR) { cqr 1949 drivers/s390/block/dasd.c __dasd_device_recovery(device, cqr); cqr 1952 drivers/s390/block/dasd.c list_move_tail(&cqr->devlist, final_queue); cqr 1957 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr) cqr 1961 drivers/s390/block/dasd.c switch (cqr->status) { cqr 1963 drivers/s390/block/dasd.c cqr->status = DASD_CQR_DONE; cqr 1966 drivers/s390/block/dasd.c cqr->status = DASD_CQR_NEED_ERP; cqr 1969 drivers/s390/block/dasd.c cqr->status = DASD_CQR_TERMINATED; cqr 1973 drivers/s390/block/dasd.c snprintf(errorstring, ERRORLENGTH, "12 %p %x02", cqr, cqr->status); cqr 1979 drivers/s390/block/dasd.c if (cqr->callback) cqr 1980 drivers/s390/block/dasd.c cqr->callback(cqr, cqr->callback_data); cqr 1991 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr; cqr 1995 drivers/s390/block/dasd.c cqr = list_entry(l, struct dasd_ccw_req, devlist); cqr 1996 drivers/s390/block/dasd.c list_del_init(&cqr->devlist); cqr 1997 drivers/s390/block/dasd.c block = cqr->block; cqr 1999 drivers/s390/block/dasd.c __dasd_process_cqr(device, cqr); cqr 2002 drivers/s390/block/dasd.c __dasd_process_cqr(device, cqr); cqr 2014 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr; cqr 2018 drivers/s390/block/dasd.c cqr = list_entry(device->ccw_queue.next, struct dasd_ccw_req, devlist); cqr 2019 drivers/s390/block/dasd.c if ((cqr->status == DASD_CQR_IN_IO && cqr->expires != 0) && cqr 2020 drivers/s390/block/dasd.c (time_after_eq(jiffies, cqr->expires + cqr->starttime))) { cqr 2026 drivers/s390/block/dasd.c cqr->retries++; cqr 2028 drivers/s390/block/dasd.c if (device->discipline->term_IO(cqr) != 0) { cqr 2033 drivers/s390/block/dasd.c cqr, (cqr->expires/HZ)); cqr 2034 drivers/s390/block/dasd.c cqr->expires += 5*HZ; cqr 2039 drivers/s390/block/dasd.c "remaining\n", cqr, (cqr->expires/HZ), cqr 2040 drivers/s390/block/dasd.c cqr->retries); cqr 2049 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr) cqr 2066 drivers/s390/block/dasd.c if (!test_bit(DASD_CQR_VERIFY_PATH, &cqr->flags)) { cqr 2082 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr; cqr 2087 drivers/s390/block/dasd.c cqr = list_entry(device->ccw_queue.next, struct dasd_ccw_req, devlist); cqr 2088 drivers/s390/block/dasd.c if (cqr->status != DASD_CQR_QUEUED) cqr 2091 drivers/s390/block/dasd.c if (__dasd_device_is_unusable(device, cqr)) { cqr 2092 drivers/s390/block/dasd.c cqr->intrc = -EAGAIN; cqr 2093 drivers/s390/block/dasd.c cqr->status = DASD_CQR_CLEARED; cqr 2098 drivers/s390/block/dasd.c rc = device->discipline->start_IO(cqr); cqr 2100 drivers/s390/block/dasd.c dasd_device_set_timer(device, cqr->expires); cqr 2138 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr, *n; cqr 2145 drivers/s390/block/dasd.c list_for_each_entry_safe(cqr, n, &device->ccw_queue, devlist) { cqr 2147 drivers/s390/block/dasd.c switch (cqr->status) { cqr 2149 drivers/s390/block/dasd.c rc = device->discipline->term_IO(cqr); cqr 2154 drivers/s390/block/dasd.c "failed for request %p\n", cqr); cqr 2160 drivers/s390/block/dasd.c cqr->stopclk = get_tod_clock(); cqr 2161 drivers/s390/block/dasd.c cqr->status = DASD_CQR_CLEARED; cqr 2166 drivers/s390/block/dasd.c list_move_tail(&cqr->devlist, &flush_queue); cqr 2175 drivers/s390/block/dasd.c list_for_each_entry_safe(cqr, n, &flush_queue, devlist) cqr 2177 drivers/s390/block/dasd.c (cqr->status != DASD_CQR_CLEAR_PENDING)); cqr 2246 drivers/s390/block/dasd.c void dasd_add_request_head(struct dasd_ccw_req *cqr) cqr 2251 drivers/s390/block/dasd.c device = cqr->startdev; cqr 2253 drivers/s390/block/dasd.c cqr->status = DASD_CQR_QUEUED; cqr 2254 drivers/s390/block/dasd.c list_add(&cqr->devlist, &device->ccw_queue); cqr 2265 drivers/s390/block/dasd.c void dasd_add_request_tail(struct dasd_ccw_req *cqr) cqr 2270 drivers/s390/block/dasd.c device = cqr->startdev; cqr 2272 drivers/s390/block/dasd.c cqr->status = DASD_CQR_QUEUED; cqr 2273 drivers/s390/block/dasd.c list_add_tail(&cqr->devlist, &device->ccw_queue); cqr 2283 drivers/s390/block/dasd.c void dasd_wakeup_cb(struct dasd_ccw_req *cqr, void *data) cqr 2285 drivers/s390/block/dasd.c spin_lock_irq(get_ccwdev_lock(cqr->startdev->cdev)); cqr 2286 drivers/s390/block/dasd.c cqr->callback_data = DASD_SLEEPON_END_TAG; cqr 2287 drivers/s390/block/dasd.c spin_unlock_irq(get_ccwdev_lock(cqr->startdev->cdev)); cqr 2292 drivers/s390/block/dasd.c static inline int _wait_for_wakeup(struct dasd_ccw_req *cqr) cqr 2297 drivers/s390/block/dasd.c device = cqr->startdev; cqr 2299 drivers/s390/block/dasd.c rc = (cqr->callback_data == DASD_SLEEPON_END_TAG); cqr 2307 drivers/s390/block/dasd.c static int __dasd_sleep_on_erp(struct dasd_ccw_req *cqr) cqr 2312 drivers/s390/block/dasd.c if (cqr->status == DASD_CQR_FILLED) cqr 2314 drivers/s390/block/dasd.c device = cqr->startdev; cqr 2315 drivers/s390/block/dasd.c if (test_bit(DASD_CQR_FLAGS_USE_ERP, &cqr->flags)) { cqr 2316 drivers/s390/block/dasd.c if (cqr->status == DASD_CQR_TERMINATED) { cqr 2317 drivers/s390/block/dasd.c device->discipline->handle_terminated_request(cqr); cqr 2320 drivers/s390/block/dasd.c if (cqr->status == DASD_CQR_NEED_ERP) { cqr 2321 drivers/s390/block/dasd.c erp_fn = device->discipline->erp_action(cqr); cqr 2322 drivers/s390/block/dasd.c erp_fn(cqr); cqr 2325 drivers/s390/block/dasd.c if (cqr->status == DASD_CQR_FAILED) cqr 2326 drivers/s390/block/dasd.c dasd_log_sense(cqr, &cqr->irb); cqr 2327 drivers/s390/block/dasd.c if (cqr->refers) { cqr 2328 drivers/s390/block/dasd.c __dasd_process_erp(device, cqr); cqr 2335 drivers/s390/block/dasd.c static int __dasd_sleep_on_loop_condition(struct dasd_ccw_req *cqr) cqr 2337 drivers/s390/block/dasd.c if (test_bit(DASD_CQR_FLAGS_USE_ERP, &cqr->flags)) { cqr 2338 drivers/s390/block/dasd.c if (cqr->refers) /* erp is not done yet */ cqr 2340 drivers/s390/block/dasd.c return ((cqr->status != DASD_CQR_DONE) && cqr 2341 drivers/s390/block/dasd.c (cqr->status != DASD_CQR_FAILED)); cqr 2343 drivers/s390/block/dasd.c return (cqr->status == DASD_CQR_FILLED); cqr 2351 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr; cqr 2357 drivers/s390/block/dasd.c for (cqr = maincqr; __dasd_sleep_on_loop_condition(cqr); cqr 2358 drivers/s390/block/dasd.c cqr = list_first_entry(&ccw_queue, cqr 2361 drivers/s390/block/dasd.c if (__dasd_sleep_on_erp(cqr)) cqr 2363 drivers/s390/block/dasd.c if (cqr->status != DASD_CQR_FILLED) /* could be failed */ cqr 2366 drivers/s390/block/dasd.c !test_bit(DASD_CQR_ALLOW_SLOCK, &cqr->flags)) { cqr 2367 drivers/s390/block/dasd.c cqr->status = DASD_CQR_FAILED; cqr 2368 drivers/s390/block/dasd.c cqr->intrc = -EPERM; cqr 2373 drivers/s390/block/dasd.c test_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags) && cqr 2375 drivers/s390/block/dasd.c cqr->status = DASD_CQR_FAILED; cqr 2376 drivers/s390/block/dasd.c cqr->intrc = -ENOLINK; cqr 2384 drivers/s390/block/dasd.c cqr->status = DASD_CQR_FAILED; cqr 2385 drivers/s390/block/dasd.c cqr->intrc = -ENODEV; cqr 2392 drivers/s390/block/dasd.c if (!test_bit(DASD_CQR_VERIFY_PATH, &cqr->flags)) { cqr 2397 drivers/s390/block/dasd.c cqr->status = DASD_CQR_FAILED; cqr 2404 drivers/s390/block/dasd.c if (!cqr->callback) cqr 2405 drivers/s390/block/dasd.c cqr->callback = dasd_wakeup_cb; cqr 2407 drivers/s390/block/dasd.c cqr->callback_data = DASD_SLEEPON_START_TAG; cqr 2408 drivers/s390/block/dasd.c dasd_add_request_tail(cqr); cqr 2411 drivers/s390/block/dasd.c generic_waitq, _wait_for_wakeup(cqr)); cqr 2413 drivers/s390/block/dasd.c dasd_cancel_req(cqr); cqr 2416 drivers/s390/block/dasd.c _wait_for_wakeup(cqr)); cqr 2417 drivers/s390/block/dasd.c cqr->status = DASD_CQR_FAILED; cqr 2422 drivers/s390/block/dasd.c wait_event(generic_waitq, _wait_for_wakeup(cqr)); cqr 2440 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr; cqr 2442 drivers/s390/block/dasd.c list_for_each_entry(cqr, ccw_queue, blocklist) { cqr 2443 drivers/s390/block/dasd.c if (cqr->callback_data != DASD_SLEEPON_END_TAG) cqr 2453 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr, *n; cqr 2458 drivers/s390/block/dasd.c list_for_each_entry_safe(cqr, n, ccw_queue, blocklist) { cqr 2459 drivers/s390/block/dasd.c device = cqr->startdev; cqr 2460 drivers/s390/block/dasd.c if (cqr->status != DASD_CQR_FILLED) /*could be failed*/ cqr 2464 drivers/s390/block/dasd.c !test_bit(DASD_CQR_ALLOW_SLOCK, &cqr->flags)) { cqr 2465 drivers/s390/block/dasd.c cqr->status = DASD_CQR_FAILED; cqr 2466 drivers/s390/block/dasd.c cqr->intrc = -EPERM; cqr 2471 drivers/s390/block/dasd.c test_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags) && cqr 2473 drivers/s390/block/dasd.c cqr->status = DASD_CQR_FAILED; cqr 2474 drivers/s390/block/dasd.c cqr->intrc = -EAGAIN; cqr 2483 drivers/s390/block/dasd.c cqr->status = DASD_CQR_FAILED; cqr 2484 drivers/s390/block/dasd.c cqr->intrc = rc; cqr 2490 drivers/s390/block/dasd.c if (!cqr->callback) cqr 2491 drivers/s390/block/dasd.c cqr->callback = dasd_wakeup_cb; cqr 2492 drivers/s390/block/dasd.c cqr->callback_data = DASD_SLEEPON_START_TAG; cqr 2493 drivers/s390/block/dasd.c dasd_add_request_tail(cqr); cqr 2499 drivers/s390/block/dasd.c list_for_each_entry_safe(cqr, n, ccw_queue, blocklist) { cqr 2506 drivers/s390/block/dasd.c sense = dasd_get_sense(&cqr->irb); cqr 2508 drivers/s390/block/dasd.c test_bit(DASD_CQR_SUPPRESS_FP, &cqr->flags)) cqr 2510 drivers/s390/block/dasd.c if (scsw_cstat(&cqr->irb.scsw) == 0x40 && cqr 2511 drivers/s390/block/dasd.c test_bit(DASD_CQR_SUPPRESS_IL, &cqr->flags)) cqr 2519 drivers/s390/block/dasd.c if (cqr->startdev != cqr->basedev && !cqr->refers && cqr 2520 drivers/s390/block/dasd.c (cqr->status == DASD_CQR_TERMINATED || cqr 2521 drivers/s390/block/dasd.c cqr->status == DASD_CQR_NEED_ERP)) cqr 2525 drivers/s390/block/dasd.c if (__dasd_sleep_on_erp(cqr)) cqr 2537 drivers/s390/block/dasd.c int dasd_sleep_on(struct dasd_ccw_req *cqr) cqr 2539 drivers/s390/block/dasd.c return _dasd_sleep_on(cqr, 0); cqr 2565 drivers/s390/block/dasd.c int dasd_sleep_on_interruptible(struct dasd_ccw_req *cqr) cqr 2567 drivers/s390/block/dasd.c return _dasd_sleep_on(cqr, 1); cqr 2579 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr; cqr 2584 drivers/s390/block/dasd.c cqr = list_entry(device->ccw_queue.next, struct dasd_ccw_req, devlist); cqr 2585 drivers/s390/block/dasd.c rc = device->discipline->term_IO(cqr); cqr 2592 drivers/s390/block/dasd.c cqr->retries++; cqr 2596 drivers/s390/block/dasd.c int dasd_sleep_on_immediatly(struct dasd_ccw_req *cqr) cqr 2601 drivers/s390/block/dasd.c device = cqr->startdev; cqr 2603 drivers/s390/block/dasd.c !test_bit(DASD_CQR_ALLOW_SLOCK, &cqr->flags)) { cqr 2604 drivers/s390/block/dasd.c cqr->status = DASD_CQR_FAILED; cqr 2605 drivers/s390/block/dasd.c cqr->intrc = -EPERM; cqr 2614 drivers/s390/block/dasd.c cqr->callback = dasd_wakeup_cb; cqr 2615 drivers/s390/block/dasd.c cqr->callback_data = DASD_SLEEPON_START_TAG; cqr 2616 drivers/s390/block/dasd.c cqr->status = DASD_CQR_QUEUED; cqr 2621 drivers/s390/block/dasd.c list_add(&cqr->devlist, device->ccw_queue.next); cqr 2628 drivers/s390/block/dasd.c wait_event(generic_waitq, _wait_for_wakeup(cqr)); cqr 2630 drivers/s390/block/dasd.c if (cqr->status == DASD_CQR_DONE) cqr 2632 drivers/s390/block/dasd.c else if (cqr->intrc) cqr 2633 drivers/s390/block/dasd.c rc = cqr->intrc; cqr 2655 drivers/s390/block/dasd.c static int __dasd_cancel_req(struct dasd_ccw_req *cqr) cqr 2657 drivers/s390/block/dasd.c struct dasd_device *device = cqr->startdev; cqr 2660 drivers/s390/block/dasd.c switch (cqr->status) { cqr 2663 drivers/s390/block/dasd.c cqr->status = DASD_CQR_CLEARED; cqr 2667 drivers/s390/block/dasd.c rc = device->discipline->term_IO(cqr); cqr 2671 drivers/s390/block/dasd.c cqr, rc); cqr 2673 drivers/s390/block/dasd.c cqr->stopclk = get_tod_clock(); cqr 2683 drivers/s390/block/dasd.c int dasd_cancel_req(struct dasd_ccw_req *cqr) cqr 2685 drivers/s390/block/dasd.c struct dasd_device *device = cqr->startdev; cqr 2690 drivers/s390/block/dasd.c rc = __dasd_cancel_req(cqr); cqr 2743 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr) cqr 2747 drivers/s390/block/dasd.c if (cqr->status == DASD_CQR_DONE) cqr 2751 drivers/s390/block/dasd.c erp_fn = device->discipline->erp_postaction(cqr); cqr 2752 drivers/s390/block/dasd.c erp_fn(cqr); cqr 2755 drivers/s390/block/dasd.c static void __dasd_cleanup_cqr(struct dasd_ccw_req *cqr) cqr 2762 drivers/s390/block/dasd.c req = (struct request *) cqr->callback_data; cqr 2763 drivers/s390/block/dasd.c dasd_profile_end(cqr->block, cqr, req); cqr 2765 drivers/s390/block/dasd.c proc_bytes = cqr->proc_bytes; cqr 2766 drivers/s390/block/dasd.c status = cqr->block->base->discipline->free_cp(cqr, req); cqr 2770 drivers/s390/block/dasd.c switch (cqr->intrc) { cqr 2818 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr; cqr 2826 drivers/s390/block/dasd.c cqr = list_entry(l, struct dasd_ccw_req, blocklist); cqr 2827 drivers/s390/block/dasd.c if (cqr->status != DASD_CQR_DONE && cqr 2828 drivers/s390/block/dasd.c cqr->status != DASD_CQR_FAILED && cqr 2829 drivers/s390/block/dasd.c cqr->status != DASD_CQR_NEED_ERP && cqr 2830 drivers/s390/block/dasd.c cqr->status != DASD_CQR_TERMINATED) cqr 2833 drivers/s390/block/dasd.c if (cqr->status == DASD_CQR_TERMINATED) { cqr 2834 drivers/s390/block/dasd.c base->discipline->handle_terminated_request(cqr); cqr 2839 drivers/s390/block/dasd.c if (cqr->status == DASD_CQR_NEED_ERP) { cqr 2840 drivers/s390/block/dasd.c erp_fn = base->discipline->erp_action(cqr); cqr 2841 drivers/s390/block/dasd.c if (IS_ERR(erp_fn(cqr))) cqr 2847 drivers/s390/block/dasd.c if (cqr->status == DASD_CQR_FAILED) { cqr 2848 drivers/s390/block/dasd.c dasd_log_sense(cqr, &cqr->irb); cqr 2853 drivers/s390/block/dasd.c cqr->status == DASD_CQR_FAILED) { cqr 2854 drivers/s390/block/dasd.c dasd_eer_write(base, cqr, DASD_EER_FATALERROR); cqr 2857 drivers/s390/block/dasd.c cqr->status = DASD_CQR_FILLED; cqr 2858 drivers/s390/block/dasd.c cqr->retries = 255; cqr 2867 drivers/s390/block/dasd.c if (cqr->refers) { cqr 2868 drivers/s390/block/dasd.c __dasd_process_erp(base, cqr); cqr 2873 drivers/s390/block/dasd.c cqr->endclk = get_tod_clock(); cqr 2874 drivers/s390/block/dasd.c list_move_tail(&cqr->blocklist, final_queue); cqr 2878 drivers/s390/block/dasd.c static void dasd_return_cqr_cb(struct dasd_ccw_req *cqr, void *data) cqr 2880 drivers/s390/block/dasd.c dasd_schedule_block_bh(cqr->block); cqr 2885 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr; cqr 2893 drivers/s390/block/dasd.c list_for_each_entry(cqr, &block->ccw_queue, blocklist) { cqr 2894 drivers/s390/block/dasd.c if (cqr->status != DASD_CQR_FILLED) cqr 2897 drivers/s390/block/dasd.c !test_bit(DASD_CQR_ALLOW_SLOCK, &cqr->flags)) { cqr 2898 drivers/s390/block/dasd.c cqr->status = DASD_CQR_FAILED; cqr 2899 drivers/s390/block/dasd.c cqr->intrc = -EPERM; cqr 2905 drivers/s390/block/dasd.c test_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags) && cqr 2907 drivers/s390/block/dasd.c cqr->status = DASD_CQR_FAILED; cqr 2908 drivers/s390/block/dasd.c cqr->intrc = -ENOLINK; cqr 2917 drivers/s390/block/dasd.c if (!cqr->startdev) cqr 2918 drivers/s390/block/dasd.c cqr->startdev = block->base; cqr 2921 drivers/s390/block/dasd.c cqr->callback = dasd_return_cqr_cb; cqr 2923 drivers/s390/block/dasd.c dasd_add_request_tail(cqr); cqr 2937 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr; cqr 2949 drivers/s390/block/dasd.c cqr = list_entry(l, struct dasd_ccw_req, blocklist); cqr 2950 drivers/s390/block/dasd.c dq = cqr->dq; cqr 2952 drivers/s390/block/dasd.c list_del_init(&cqr->blocklist); cqr 2953 drivers/s390/block/dasd.c __dasd_cleanup_cqr(cqr); cqr 2967 drivers/s390/block/dasd.c static void _dasd_wake_block_flush_cb(struct dasd_ccw_req *cqr, void *data) cqr 2976 drivers/s390/block/dasd.c static int _dasd_requeue_request(struct dasd_ccw_req *cqr) cqr 2978 drivers/s390/block/dasd.c struct dasd_block *block = cqr->block; cqr 2983 drivers/s390/block/dasd.c spin_lock_irq(&cqr->dq->lock); cqr 2984 drivers/s390/block/dasd.c req = (struct request *) cqr->callback_data; cqr 2986 drivers/s390/block/dasd.c spin_unlock_irq(&cqr->dq->lock); cqr 2998 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr, *n; cqr 3007 drivers/s390/block/dasd.c list_for_each_entry_safe(cqr, n, &block->ccw_queue, blocklist) { cqr 3009 drivers/s390/block/dasd.c if (cqr->status >= DASD_CQR_QUEUED) cqr 3010 drivers/s390/block/dasd.c rc = dasd_cancel_req(cqr); cqr 3018 drivers/s390/block/dasd.c cqr->callback = _dasd_wake_block_flush_cb; cqr 3019 drivers/s390/block/dasd.c for (i = 0; cqr != NULL; cqr = cqr->refers, i++) cqr 3020 drivers/s390/block/dasd.c list_move_tail(&cqr->blocklist, &flush_queue); cqr 3028 drivers/s390/block/dasd.c list_for_each_entry_safe(cqr, n, &flush_queue, blocklist) { cqr 3029 drivers/s390/block/dasd.c wait_event(dasd_flush_wq, (cqr->status < DASD_CQR_QUEUED)); cqr 3031 drivers/s390/block/dasd.c if (cqr->refers) { cqr 3033 drivers/s390/block/dasd.c __dasd_process_erp(block->base, cqr); cqr 3040 drivers/s390/block/dasd.c spin_lock_irqsave(&cqr->dq->lock, flags); cqr 3041 drivers/s390/block/dasd.c cqr->endclk = get_tod_clock(); cqr 3042 drivers/s390/block/dasd.c list_del_init(&cqr->blocklist); cqr 3043 drivers/s390/block/dasd.c __dasd_cleanup_cqr(cqr); cqr 3044 drivers/s390/block/dasd.c spin_unlock_irqrestore(&cqr->dq->lock, flags); cqr 3079 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr; cqr 3120 drivers/s390/block/dasd.c cqr = basedev->discipline->build_cp(basedev, block, req); cqr 3121 drivers/s390/block/dasd.c if (IS_ERR(cqr)) { cqr 3122 drivers/s390/block/dasd.c if (PTR_ERR(cqr) == -EBUSY || cqr 3123 drivers/s390/block/dasd.c PTR_ERR(cqr) == -ENOMEM || cqr 3124 drivers/s390/block/dasd.c PTR_ERR(cqr) == -EAGAIN) { cqr 3130 drivers/s390/block/dasd.c PTR_ERR(cqr), req); cqr 3138 drivers/s390/block/dasd.c cqr->callback_data = req; cqr 3139 drivers/s390/block/dasd.c cqr->status = DASD_CQR_FILLED; cqr 3140 drivers/s390/block/dasd.c cqr->dq = dq; cqr 3144 drivers/s390/block/dasd.c list_add_tail(&cqr->blocklist, &block->ccw_queue); cqr 3145 drivers/s390/block/dasd.c INIT_LIST_HEAD(&cqr->devlist); cqr 3146 drivers/s390/block/dasd.c dasd_profile_start(block, cqr, req); cqr 3167 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr; cqr 3171 drivers/s390/block/dasd.c cqr = blk_mq_rq_to_pdu(req); cqr 3172 drivers/s390/block/dasd.c if (!cqr) cqr 3175 drivers/s390/block/dasd.c spin_lock_irqsave(&cqr->dq->lock, flags); cqr 3176 drivers/s390/block/dasd.c device = cqr->startdev ? cqr->startdev : block->base; cqr 3178 drivers/s390/block/dasd.c spin_unlock_irqrestore(&cqr->dq->lock, flags); cqr 3183 drivers/s390/block/dasd.c cqr, cqr->status); cqr 3187 drivers/s390/block/dasd.c cqr->retries = -1; cqr 3188 drivers/s390/block/dasd.c cqr->intrc = -ETIMEDOUT; cqr 3189 drivers/s390/block/dasd.c if (cqr->status >= DASD_CQR_QUEUED) { cqr 3190 drivers/s390/block/dasd.c rc = __dasd_cancel_req(cqr); cqr 3191 drivers/s390/block/dasd.c } else if (cqr->status == DASD_CQR_FILLED || cqr 3192 drivers/s390/block/dasd.c cqr->status == DASD_CQR_NEED_ERP) { cqr 3193 drivers/s390/block/dasd.c cqr->status = DASD_CQR_TERMINATED; cqr 3194 drivers/s390/block/dasd.c } else if (cqr->status == DASD_CQR_IN_ERP) { cqr 3202 drivers/s390/block/dasd.c if (tmpcqr != cqr) cqr 3226 drivers/s390/block/dasd.c spin_unlock_irqrestore(&cqr->dq->lock, flags); cqr 3761 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr; cqr 3772 drivers/s390/block/dasd.c list_for_each_entry(cqr, &device->ccw_queue, devlist) cqr 3773 drivers/s390/block/dasd.c if ((cqr->status == DASD_CQR_IN_IO) || cqr 3774 drivers/s390/block/dasd.c (cqr->status == DASD_CQR_CLEAR_PENDING)) { cqr 3775 drivers/s390/block/dasd.c cqr->status = DASD_CQR_QUEUED; cqr 3776 drivers/s390/block/dasd.c cqr->retries++; cqr 3921 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr) cqr 3928 drivers/s390/block/dasd.c if (cqr->status == DASD_CQR_IN_IO || cqr 3929 drivers/s390/block/dasd.c cqr->status == DASD_CQR_CLEAR_PENDING) { cqr 3930 drivers/s390/block/dasd.c cqr->status = DASD_CQR_QUEUED; cqr 3931 drivers/s390/block/dasd.c cqr->retries++; cqr 3963 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr, *n; cqr 3970 drivers/s390/block/dasd.c list_for_each_entry_safe(cqr, n, &device->ccw_queue, devlist) { cqr 3972 drivers/s390/block/dasd.c if (cqr->status == DASD_CQR_IN_IO) { cqr 3973 drivers/s390/block/dasd.c rc = device->discipline->term_IO(cqr); cqr 3978 drivers/s390/block/dasd.c "on suspend\n", cqr); cqr 3984 drivers/s390/block/dasd.c list_move_tail(&cqr->devlist, &requeue_queue); cqr 3988 drivers/s390/block/dasd.c list_for_each_entry_safe(cqr, n, &requeue_queue, devlist) { cqr 3990 drivers/s390/block/dasd.c (cqr->status != DASD_CQR_CLEAR_PENDING)); cqr 3996 drivers/s390/block/dasd.c if (_dasd_requeue_request(cqr)) cqr 4000 drivers/s390/block/dasd.c list_del_init(&cqr->devlist); cqr 4001 drivers/s390/block/dasd.c while (cqr->refers != NULL) { cqr 4002 drivers/s390/block/dasd.c refers = cqr->refers; cqr 4004 drivers/s390/block/dasd.c list_del(&cqr->blocklist); cqr 4006 drivers/s390/block/dasd.c dasd_free_erp_request(cqr, cqr->memdev); cqr 4007 drivers/s390/block/dasd.c cqr = refers; cqr 4016 drivers/s390/block/dasd.c list_del_init(&cqr->blocklist); cqr 4017 drivers/s390/block/dasd.c cqr->block->base->discipline->free_cp( cqr 4018 drivers/s390/block/dasd.c cqr, (struct request *) cqr->callback_data); cqr 4119 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr; cqr 4122 drivers/s390/block/dasd.c cqr = dasd_smalloc_request(magic, 1 /* RDC */, rdc_buffer_size, device, cqr 4125 drivers/s390/block/dasd.c if (IS_ERR(cqr)) { cqr 4130 drivers/s390/block/dasd.c return cqr; cqr 4133 drivers/s390/block/dasd.c ccw = cqr->cpaddr; cqr 4135 drivers/s390/block/dasd.c ccw->cda = (__u32)(addr_t) cqr->data; cqr 4138 drivers/s390/block/dasd.c cqr->startdev = device; cqr 4139 drivers/s390/block/dasd.c cqr->memdev = device; cqr 4140 drivers/s390/block/dasd.c cqr->expires = 10*HZ; cqr 4141 drivers/s390/block/dasd.c cqr->retries = 256; cqr 4142 drivers/s390/block/dasd.c cqr->buildclk = get_tod_clock(); cqr 4143 drivers/s390/block/dasd.c cqr->status = DASD_CQR_FILLED; cqr 4144 drivers/s390/block/dasd.c return cqr; cqr 4152 drivers/s390/block/dasd.c struct dasd_ccw_req *cqr; cqr 4154 drivers/s390/block/dasd.c cqr = dasd_generic_build_rdc(device, rdc_buffer_size, magic); cqr 4155 drivers/s390/block/dasd.c if (IS_ERR(cqr)) cqr 4156 drivers/s390/block/dasd.c return PTR_ERR(cqr); cqr 4158 drivers/s390/block/dasd.c ret = dasd_sleep_on(cqr); cqr 4160 drivers/s390/block/dasd.c memcpy(rdc_buffer, cqr->data, rdc_buffer_size); cqr 4161 drivers/s390/block/dasd.c dasd_sfree_request(cqr, cqr->memdev); cqr 55 drivers/s390/block/dasd_3990_erp.c struct dasd_ccw_req *cqr = erp->refers; cqr 58 drivers/s390/block/dasd_3990_erp.c cqr->status = final_status; cqr 59 drivers/s390/block/dasd_3990_erp.c return cqr; cqr 1435 drivers/s390/block/dasd_3990_erp.c struct dasd_ccw_req *cqr = erp->refers; cqr 1438 drivers/s390/block/dasd_3990_erp.c if (cqr->block && cqr 1439 drivers/s390/block/dasd_3990_erp.c (cqr->block->base != cqr->startdev)) { cqr 1445 drivers/s390/block/dasd_3990_erp.c if (!test_bit(DASD_FLAG_OFFLINE, &cqr->startdev->flags) && sense cqr 1453 drivers/s390/block/dasd_3990_erp.c dasd_alias_remove_device(cqr->startdev); cqr 1456 drivers/s390/block/dasd_3990_erp.c dasd_reload_device(cqr->startdev); cqr 1459 drivers/s390/block/dasd_3990_erp.c if (cqr->startdev->features & DASD_FEATURE_ERPLOG) { cqr 1460 drivers/s390/block/dasd_3990_erp.c DBF_DEV_EVENT(DBF_ERR, cqr->startdev, cqr 1462 drivers/s390/block/dasd_3990_erp.c " recover on base device %s", cqr, cqr 1463 drivers/s390/block/dasd_3990_erp.c dev_name(&cqr->block->base->cdev->dev)); cqr 1465 drivers/s390/block/dasd_3990_erp.c dasd_eckd_reset_ccw_to_base_io(cqr); cqr 1466 drivers/s390/block/dasd_3990_erp.c erp->startdev = cqr->block->base; cqr 1608 drivers/s390/block/dasd_3990_erp.c struct dasd_ccw_req *cqr; cqr 1621 drivers/s390/block/dasd_3990_erp.c cqr = default_erp; cqr 1623 drivers/s390/block/dasd_3990_erp.c while (cqr->refers != NULL) { cqr 1624 drivers/s390/block/dasd_3990_erp.c cqr = cqr->refers; cqr 1627 drivers/s390/block/dasd_3990_erp.c if (scsw_is_tm(&cqr->irb.scsw)) { cqr 1655 drivers/s390/block/dasd_3990_erp.c erp = dasd_alloc_erp_request((char *) &cqr->magic, cqr 1669 drivers/s390/block/dasd_3990_erp.c oldccw = cqr->cpaddr; cqr 1671 drivers/s390/block/dasd_3990_erp.c PFX_data = cqr->data; cqr 1675 drivers/s390/block/dasd_3990_erp.c memcpy(DE_data, cqr->data, sizeof(struct DE_eckd_data)); cqr 1767 drivers/s390/block/dasd_3990_erp.c struct dasd_ccw_req *cqr; cqr 1777 drivers/s390/block/dasd_3990_erp.c cqr = previous_erp; cqr 1779 drivers/s390/block/dasd_3990_erp.c while (cqr->refers != NULL) { cqr 1780 drivers/s390/block/dasd_3990_erp.c cqr = cqr->refers; cqr 1783 drivers/s390/block/dasd_3990_erp.c if (scsw_is_tm(&cqr->irb.scsw)) { cqr 2371 drivers/s390/block/dasd_3990_erp.c static struct dasd_ccw_req *dasd_3990_erp_add_erp(struct dasd_ccw_req *cqr) cqr 2374 drivers/s390/block/dasd_3990_erp.c struct dasd_device *device = cqr->startdev; cqr 2381 drivers/s390/block/dasd_3990_erp.c if (cqr->cpmode == 1) { cqr 2391 drivers/s390/block/dasd_3990_erp.c erp = dasd_alloc_erp_request((char *) &cqr->magic, cqr 2394 drivers/s390/block/dasd_3990_erp.c if (cqr->retries <= 0) { cqr 2397 drivers/s390/block/dasd_3990_erp.c cqr->status = DASD_CQR_FAILED; cqr 2398 drivers/s390/block/dasd_3990_erp.c cqr->stopclk = get_tod_clock(); cqr 2403 drivers/s390/block/dasd_3990_erp.c cqr->retries); cqr 2409 drivers/s390/block/dasd_3990_erp.c ccw = cqr->cpaddr; cqr 2410 drivers/s390/block/dasd_3990_erp.c if (cqr->cpmode == 1) { cqr 2416 drivers/s390/block/dasd_3990_erp.c *tcw = *((struct tcw *)cqr->cpaddr); cqr 2420 drivers/s390/block/dasd_3990_erp.c erp->cpaddr = cqr->cpaddr; cqr 2428 drivers/s390/block/dasd_3990_erp.c ccw->cda = (long)(cqr->cpaddr); cqr 2431 drivers/s390/block/dasd_3990_erp.c erp->flags = cqr->flags; cqr 2433 drivers/s390/block/dasd_3990_erp.c erp->refers = cqr; cqr 2436 drivers/s390/block/dasd_3990_erp.c erp->block = cqr->block; cqr 2437 drivers/s390/block/dasd_3990_erp.c erp->magic = cqr->magic; cqr 2438 drivers/s390/block/dasd_3990_erp.c erp->expires = cqr->expires; cqr 2462 drivers/s390/block/dasd_3990_erp.c dasd_3990_erp_additional_erp(struct dasd_ccw_req * cqr) cqr 2468 drivers/s390/block/dasd_3990_erp.c erp = dasd_3990_erp_add_erp(cqr); cqr 2474 drivers/s390/block/dasd_3990_erp.c if (erp != cqr) { cqr 2552 drivers/s390/block/dasd_3990_erp.c dasd_3990_erp_in_erp(struct dasd_ccw_req *cqr) cqr 2555 drivers/s390/block/dasd_3990_erp.c struct dasd_ccw_req *erp_head = cqr, /* save erp chain head */ cqr 2559 drivers/s390/block/dasd_3990_erp.c if (cqr->refers == NULL) { /* return if not in erp */ cqr 2565 drivers/s390/block/dasd_3990_erp.c match = dasd_3990_erp_error_match(erp_head, cqr->refers); cqr 2566 drivers/s390/block/dasd_3990_erp.c erp_match = cqr; /* save possible matching erp */ cqr 2567 drivers/s390/block/dasd_3990_erp.c cqr = cqr->refers; /* check next erp/cqr in queue */ cqr 2569 drivers/s390/block/dasd_3990_erp.c } while ((cqr->refers != NULL) && (!match)); cqr 2772 drivers/s390/block/dasd_3990_erp.c dasd_3990_erp_action(struct dasd_ccw_req * cqr) cqr 2775 drivers/s390/block/dasd_3990_erp.c struct dasd_device *device = cqr->startdev; cqr 2782 drivers/s390/block/dasd_3990_erp.c for (temp_erp = cqr; cqr 2793 drivers/s390/block/dasd_3990_erp.c if ((scsw_cstat(&cqr->irb.scsw) == 0x00) && cqr 2794 drivers/s390/block/dasd_3990_erp.c (scsw_dstat(&cqr->irb.scsw) == cqr 2799 drivers/s390/block/dasd_3990_erp.c " - NO ERP necessary", cqr); cqr 2801 drivers/s390/block/dasd_3990_erp.c cqr->status = DASD_CQR_DONE; cqr 2803 drivers/s390/block/dasd_3990_erp.c return cqr; cqr 2807 drivers/s390/block/dasd_3990_erp.c erp = dasd_3990_erp_in_erp(cqr); cqr 2811 drivers/s390/block/dasd_3990_erp.c erp = dasd_3990_erp_additional_erp(cqr); cqr 2816 drivers/s390/block/dasd_3990_erp.c erp = dasd_3990_erp_handle_match_erp(cqr, erp); cqr 2825 drivers/s390/block/dasd_3990_erp.c if (test_bit(DASD_CQR_VERIFY_PATH, &erp->flags) && cqr->lpm) { cqr 2826 drivers/s390/block/dasd_3990_erp.c erp->lpm = cqr->lpm; cqr 2845 drivers/s390/block/dasd_3990_erp.c cqr->status = DASD_CQR_IN_ERP; cqr 2847 drivers/s390/block/dasd_3990_erp.c list_add_tail(&erp->blocklist, &cqr->blocklist); cqr 379 drivers/s390/block/dasd_alias.c suborder_not_supported(struct dasd_ccw_req *cqr) cqr 391 drivers/s390/block/dasd_alias.c if (cqr->intrc == -ENODEV) cqr 394 drivers/s390/block/dasd_alias.c if (cqr->intrc == -ENOLINK) cqr 397 drivers/s390/block/dasd_alias.c if (cqr->intrc == -EPERM) cqr 400 drivers/s390/block/dasd_alias.c sense = dasd_get_sense(&cqr->irb); cqr 419 drivers/s390/block/dasd_alias.c struct dasd_ccw_req *cqr; cqr 424 drivers/s390/block/dasd_alias.c cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1 /* PSF */ + 1 /* RSSD */, cqr 427 drivers/s390/block/dasd_alias.c if (IS_ERR(cqr)) cqr 428 drivers/s390/block/dasd_alias.c return PTR_ERR(cqr); cqr 429 drivers/s390/block/dasd_alias.c cqr->startdev = device; cqr 430 drivers/s390/block/dasd_alias.c cqr->memdev = device; cqr 431 drivers/s390/block/dasd_alias.c clear_bit(DASD_CQR_FLAGS_USE_ERP, &cqr->flags); cqr 432 drivers/s390/block/dasd_alias.c cqr->retries = 10; cqr 433 drivers/s390/block/dasd_alias.c cqr->expires = 20 * HZ; cqr 436 drivers/s390/block/dasd_alias.c prssdp = (struct dasd_psf_prssd_data *) cqr->data; cqr 442 drivers/s390/block/dasd_alias.c ccw = cqr->cpaddr; cqr 456 drivers/s390/block/dasd_alias.c cqr->buildclk = get_tod_clock(); cqr 457 drivers/s390/block/dasd_alias.c cqr->status = DASD_CQR_FILLED; cqr 464 drivers/s390/block/dasd_alias.c rc = dasd_sleep_on(cqr); cqr 465 drivers/s390/block/dasd_alias.c if (rc && !suborder_not_supported(cqr)) { cqr 470 drivers/s390/block/dasd_alias.c dasd_sfree_request(cqr, cqr->memdev); cqr 716 drivers/s390/block/dasd_alias.c struct dasd_ccw_req *cqr; cqr 720 drivers/s390/block/dasd_alias.c cqr = lcu->rsu_cqr; cqr 721 drivers/s390/block/dasd_alias.c memcpy((char *) &cqr->magic, "ECKD", 4); cqr 722 drivers/s390/block/dasd_alias.c ASCEBC((char *) &cqr->magic, 4); cqr 723 drivers/s390/block/dasd_alias.c ccw = cqr->cpaddr; cqr 727 drivers/s390/block/dasd_alias.c ccw->cda = (__u32)(addr_t) cqr->data; cqr 728 drivers/s390/block/dasd_alias.c ((char *)cqr->data)[0] = reason; cqr 730 drivers/s390/block/dasd_alias.c clear_bit(DASD_CQR_FLAGS_USE_ERP, &cqr->flags); cqr 731 drivers/s390/block/dasd_alias.c cqr->retries = 255; /* set retry counter to enable basic ERP */ cqr 732 drivers/s390/block/dasd_alias.c cqr->startdev = device; cqr 733 drivers/s390/block/dasd_alias.c cqr->memdev = device; cqr 734 drivers/s390/block/dasd_alias.c cqr->block = NULL; cqr 735 drivers/s390/block/dasd_alias.c cqr->expires = 5 * HZ; cqr 736 drivers/s390/block/dasd_alias.c cqr->buildclk = get_tod_clock(); cqr 737 drivers/s390/block/dasd_alias.c cqr->status = DASD_CQR_FILLED; cqr 739 drivers/s390/block/dasd_alias.c rc = dasd_sleep_on_immediatly(cqr); cqr 164 drivers/s390/block/dasd_diag.c dasd_start_diag(struct dasd_ccw_req * cqr) cqr 171 drivers/s390/block/dasd_diag.c device = cqr->startdev; cqr 172 drivers/s390/block/dasd_diag.c if (cqr->retries < 0) { cqr 174 drivers/s390/block/dasd_diag.c "- no retry left)", cqr); cqr 175 drivers/s390/block/dasd_diag.c cqr->status = DASD_CQR_ERROR; cqr 179 drivers/s390/block/dasd_diag.c dreq = cqr->data; cqr 185 drivers/s390/block/dasd_diag.c private->iob.interrupt_params = (addr_t) cqr; cqr 189 drivers/s390/block/dasd_diag.c cqr->startclk = get_tod_clock(); cqr 190 drivers/s390/block/dasd_diag.c cqr->starttime = jiffies; cqr 191 drivers/s390/block/dasd_diag.c cqr->retries--; cqr 196 drivers/s390/block/dasd_diag.c cqr->stopclk = get_tod_clock(); cqr 197 drivers/s390/block/dasd_diag.c cqr->status = DASD_CQR_SUCCESS; cqr 203 drivers/s390/block/dasd_diag.c cqr->status = DASD_CQR_IN_IO; cqr 207 drivers/s390/block/dasd_diag.c cqr->status = DASD_CQR_QUEUED; cqr 213 drivers/s390/block/dasd_diag.c cqr->intrc = rc; cqr 219 drivers/s390/block/dasd_diag.c dasd_diag_term_IO(struct dasd_ccw_req * cqr) cqr 223 drivers/s390/block/dasd_diag.c device = cqr->startdev; cqr 226 drivers/s390/block/dasd_diag.c cqr->status = DASD_CQR_CLEAR_PENDING; cqr 227 drivers/s390/block/dasd_diag.c cqr->stopclk = get_tod_clock(); cqr 236 drivers/s390/block/dasd_diag.c struct dasd_ccw_req *cqr, *next; cqr 259 drivers/s390/block/dasd_diag.c cqr = (struct dasd_ccw_req *) ip; cqr 260 drivers/s390/block/dasd_diag.c device = (struct dasd_device *) cqr->startdev; cqr 261 drivers/s390/block/dasd_diag.c if (strncmp(device->discipline->ebcname, (char *) &cqr->magic, 4)) { cqr 265 drivers/s390/block/dasd_diag.c cqr->magic, *(int *) (&device->discipline->name)); cqr 273 drivers/s390/block/dasd_diag.c if (cqr->status == DASD_CQR_CLEAR_PENDING) { cqr 274 drivers/s390/block/dasd_diag.c cqr->status = DASD_CQR_CLEARED; cqr 281 drivers/s390/block/dasd_diag.c cqr->stopclk = get_tod_clock(); cqr 285 drivers/s390/block/dasd_diag.c cqr->status = DASD_CQR_SUCCESS; cqr 297 drivers/s390/block/dasd_diag.c cqr->status = DASD_CQR_QUEUED; cqr 299 drivers/s390/block/dasd_diag.c "request %p was %d (%d retries left)", cqr, cqr 300 drivers/s390/block/dasd_diag.c ext_code.subcode & 0xff, cqr->retries); cqr 486 drivers/s390/block/dasd_diag.c dasd_diag_erp_action(struct dasd_ccw_req * cqr) cqr 492 drivers/s390/block/dasd_diag.c dasd_diag_erp_postaction(struct dasd_ccw_req * cqr) cqr 503 drivers/s390/block/dasd_diag.c struct dasd_ccw_req *cqr; cqr 539 drivers/s390/block/dasd_diag.c cqr = dasd_smalloc_request(DASD_DIAG_MAGIC, 0, datasize, memdev, cqr 541 drivers/s390/block/dasd_diag.c if (IS_ERR(cqr)) cqr 542 drivers/s390/block/dasd_diag.c return cqr; cqr 544 drivers/s390/block/dasd_diag.c dreq = (struct dasd_diag_req *) cqr->data; cqr 560 drivers/s390/block/dasd_diag.c cqr->retries = memdev->default_retries; cqr 561 drivers/s390/block/dasd_diag.c cqr->buildclk = get_tod_clock(); cqr 564 drivers/s390/block/dasd_diag.c set_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags); cqr 565 drivers/s390/block/dasd_diag.c cqr->startdev = memdev; cqr 566 drivers/s390/block/dasd_diag.c cqr->memdev = memdev; cqr 567 drivers/s390/block/dasd_diag.c cqr->block = block; cqr 568 drivers/s390/block/dasd_diag.c cqr->expires = memdev->default_expires * HZ; cqr 569 drivers/s390/block/dasd_diag.c cqr->status = DASD_CQR_FILLED; cqr 570 drivers/s390/block/dasd_diag.c return cqr; cqr 576 drivers/s390/block/dasd_diag.c dasd_diag_free_cp(struct dasd_ccw_req *cqr, struct request *req) cqr 580 drivers/s390/block/dasd_diag.c status = cqr->status == DASD_CQR_DONE; cqr 581 drivers/s390/block/dasd_diag.c dasd_sfree_request(cqr, cqr->memdev); cqr 585 drivers/s390/block/dasd_diag.c static void dasd_diag_handle_terminated_request(struct dasd_ccw_req *cqr) cqr 587 drivers/s390/block/dasd_diag.c if (cqr->retries < 0) cqr 588 drivers/s390/block/dasd_diag.c cqr->status = DASD_CQR_FAILED; cqr 590 drivers/s390/block/dasd_diag.c cqr->status = DASD_CQR_FILLED; cqr 86 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req cqr; cqr 93 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req cqr; cqr 109 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req cqr; cqr 816 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr, cqr 830 drivers/s390/block/dasd_eckd.c ccw = cqr->cpaddr; cqr 835 drivers/s390/block/dasd_eckd.c cqr->magic = DASD_ECKD_MAGIC; cqr 837 drivers/s390/block/dasd_eckd.c cqr->startdev = device; cqr 838 drivers/s390/block/dasd_eckd.c cqr->memdev = device; cqr 839 drivers/s390/block/dasd_eckd.c cqr->block = NULL; cqr 840 drivers/s390/block/dasd_eckd.c cqr->expires = 10*HZ; cqr 841 drivers/s390/block/dasd_eckd.c cqr->lpm = lpm; cqr 842 drivers/s390/block/dasd_eckd.c cqr->retries = 256; cqr 843 drivers/s390/block/dasd_eckd.c cqr->buildclk = get_tod_clock(); cqr 844 drivers/s390/block/dasd_eckd.c cqr->status = DASD_CQR_FILLED; cqr 845 drivers/s390/block/dasd_eckd.c set_bit(DASD_CQR_VERIFY_PATH, &cqr->flags); cqr 854 drivers/s390/block/dasd_eckd.c static void read_conf_cb(struct dasd_ccw_req *cqr, void *data) cqr 859 drivers/s390/block/dasd_eckd.c if (cqr->status != DASD_CQR_DONE) { cqr 860 drivers/s390/block/dasd_eckd.c ccw = cqr->cpaddr; cqr 869 drivers/s390/block/dasd_eckd.c dasd_wakeup_cb(cqr, data); cqr 873 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr, cqr 887 drivers/s390/block/dasd_eckd.c dasd_eckd_fill_rcd_cqr(device, cqr, rcd_buffer, lpm); cqr 888 drivers/s390/block/dasd_eckd.c clear_bit(DASD_CQR_FLAGS_USE_ERP, &cqr->flags); cqr 889 drivers/s390/block/dasd_eckd.c set_bit(DASD_CQR_ALLOW_SLOCK, &cqr->flags); cqr 890 drivers/s390/block/dasd_eckd.c cqr->retries = 5; cqr 891 drivers/s390/block/dasd_eckd.c cqr->callback = read_conf_cb; cqr 892 drivers/s390/block/dasd_eckd.c rc = dasd_sleep_on_immediatly(cqr); cqr 903 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr; cqr 919 drivers/s390/block/dasd_eckd.c cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1 /* RCD */, cqr 922 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr)) { cqr 928 drivers/s390/block/dasd_eckd.c dasd_eckd_fill_rcd_cqr(device, cqr, rcd_buf, lpm); cqr 929 drivers/s390/block/dasd_eckd.c cqr->callback = read_conf_cb; cqr 930 drivers/s390/block/dasd_eckd.c ret = dasd_sleep_on(cqr); cqr 934 drivers/s390/block/dasd_eckd.c dasd_sfree_request(cqr, cqr->memdev); cqr 1232 drivers/s390/block/dasd_eckd.c memset(&data->cqr, 0, sizeof(data->cqr)); cqr 1233 drivers/s390/block/dasd_eckd.c data->cqr.cpaddr = &data->ccw; cqr 1234 drivers/s390/block/dasd_eckd.c rc = dasd_eckd_read_conf_immediately(device, &data->cqr, cqr 1296 drivers/s390/block/dasd_eckd.c memset(&data->cqr, 0, sizeof(data->cqr)); cqr 1297 drivers/s390/block/dasd_eckd.c data->cqr.cpaddr = &data->ccw; cqr 1298 drivers/s390/block/dasd_eckd.c rc = dasd_eckd_read_conf_immediately(device, &data->cqr, cqr 1470 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr; cqr 1475 drivers/s390/block/dasd_eckd.c cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1 /* PSF */ + 1 /* RSSD */, cqr 1479 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr)) { cqr 1482 drivers/s390/block/dasd_eckd.c return PTR_ERR(cqr); cqr 1484 drivers/s390/block/dasd_eckd.c cqr->startdev = device; cqr 1485 drivers/s390/block/dasd_eckd.c cqr->memdev = device; cqr 1486 drivers/s390/block/dasd_eckd.c cqr->block = NULL; cqr 1487 drivers/s390/block/dasd_eckd.c cqr->retries = 256; cqr 1488 drivers/s390/block/dasd_eckd.c cqr->expires = 10 * HZ; cqr 1491 drivers/s390/block/dasd_eckd.c prssdp = (struct dasd_psf_prssd_data *) cqr->data; cqr 1497 drivers/s390/block/dasd_eckd.c ccw = cqr->cpaddr; cqr 1512 drivers/s390/block/dasd_eckd.c cqr->buildclk = get_tod_clock(); cqr 1513 drivers/s390/block/dasd_eckd.c cqr->status = DASD_CQR_FILLED; cqr 1514 drivers/s390/block/dasd_eckd.c rc = dasd_sleep_on(cqr); cqr 1516 drivers/s390/block/dasd_eckd.c prssdp = (struct dasd_psf_prssd_data *) cqr->data; cqr 1523 drivers/s390/block/dasd_eckd.c dasd_sfree_request(cqr, cqr->memdev); cqr 1533 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr; cqr 1544 drivers/s390/block/dasd_eckd.c cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 2 /* PSF + RSSD */, cqr 1546 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr)) { cqr 1551 drivers/s390/block/dasd_eckd.c cqr = &dasd_vol_info_req->cqr; cqr 1552 drivers/s390/block/dasd_eckd.c memset(cqr, 0, sizeof(*cqr)); cqr 1554 drivers/s390/block/dasd_eckd.c cqr->cpaddr = &dasd_vol_info_req->ccw; cqr 1555 drivers/s390/block/dasd_eckd.c cqr->data = &dasd_vol_info_req->data; cqr 1556 drivers/s390/block/dasd_eckd.c cqr->magic = DASD_ECKD_MAGIC; cqr 1560 drivers/s390/block/dasd_eckd.c prssdp = cqr->data; cqr 1566 drivers/s390/block/dasd_eckd.c ccw = cqr->cpaddr; cqr 1582 drivers/s390/block/dasd_eckd.c cqr->buildclk = get_tod_clock(); cqr 1583 drivers/s390/block/dasd_eckd.c cqr->status = DASD_CQR_FILLED; cqr 1584 drivers/s390/block/dasd_eckd.c cqr->startdev = device; cqr 1585 drivers/s390/block/dasd_eckd.c cqr->memdev = device; cqr 1586 drivers/s390/block/dasd_eckd.c cqr->block = NULL; cqr 1587 drivers/s390/block/dasd_eckd.c cqr->retries = 256; cqr 1588 drivers/s390/block/dasd_eckd.c cqr->expires = device->default_expires * HZ; cqr 1590 drivers/s390/block/dasd_eckd.c __set_bit(DASD_CQR_SUPPRESS_CR, &cqr->flags); cqr 1592 drivers/s390/block/dasd_eckd.c rc = dasd_sleep_on_interruptible(cqr); cqr 1603 drivers/s390/block/dasd_eckd.c dasd_sfree_request(cqr, cqr->memdev); cqr 1682 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr) cqr 1693 drivers/s390/block/dasd_eckd.c if (cqr->block) cqr 1694 drivers/s390/block/dasd_eckd.c data->base = cqr->block->base; cqr 1695 drivers/s390/block/dasd_eckd.c else if (cqr->basedev) cqr 1696 drivers/s390/block/dasd_eckd.c data->base = cqr->basedev; cqr 1728 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr; cqr 1737 drivers/s390/block/dasd_eckd.c cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 2 /* PSF + RSSD */, cqr 1739 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr)) { cqr 1742 drivers/s390/block/dasd_eckd.c return PTR_ERR(cqr); cqr 1746 drivers/s390/block/dasd_eckd.c prssdp = cqr->data; cqr 1751 drivers/s390/block/dasd_eckd.c ccw = cqr->cpaddr; cqr 1766 drivers/s390/block/dasd_eckd.c cqr->buildclk = get_tod_clock(); cqr 1767 drivers/s390/block/dasd_eckd.c cqr->status = DASD_CQR_FILLED; cqr 1768 drivers/s390/block/dasd_eckd.c cqr->startdev = device; cqr 1769 drivers/s390/block/dasd_eckd.c cqr->memdev = device; cqr 1770 drivers/s390/block/dasd_eckd.c cqr->block = NULL; cqr 1771 drivers/s390/block/dasd_eckd.c cqr->retries = 256; cqr 1772 drivers/s390/block/dasd_eckd.c cqr->expires = device->default_expires * HZ; cqr 1774 drivers/s390/block/dasd_eckd.c __set_bit(DASD_CQR_SUPPRESS_CR, &cqr->flags); cqr 1776 drivers/s390/block/dasd_eckd.c rc = dasd_sleep_on_interruptible(cqr); cqr 1784 drivers/s390/block/dasd_eckd.c dasd_sfree_request(cqr, cqr->memdev); cqr 1839 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr; cqr 1843 drivers/s390/block/dasd_eckd.c cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1 /* PSF */ , cqr 1847 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr)) { cqr 1850 drivers/s390/block/dasd_eckd.c return cqr; cqr 1852 drivers/s390/block/dasd_eckd.c psf_ssc_data = (struct dasd_psf_ssc_data *)cqr->data; cqr 1859 drivers/s390/block/dasd_eckd.c ccw = cqr->cpaddr; cqr 1864 drivers/s390/block/dasd_eckd.c cqr->startdev = device; cqr 1865 drivers/s390/block/dasd_eckd.c cqr->memdev = device; cqr 1866 drivers/s390/block/dasd_eckd.c cqr->block = NULL; cqr 1867 drivers/s390/block/dasd_eckd.c cqr->retries = 256; cqr 1868 drivers/s390/block/dasd_eckd.c cqr->expires = 10*HZ; cqr 1869 drivers/s390/block/dasd_eckd.c cqr->buildclk = get_tod_clock(); cqr 1870 drivers/s390/block/dasd_eckd.c cqr->status = DASD_CQR_FILLED; cqr 1871 drivers/s390/block/dasd_eckd.c return cqr; cqr 1883 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr; cqr 1886 drivers/s390/block/dasd_eckd.c cqr = dasd_eckd_build_psf_ssc(device, enable_pav); cqr 1887 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr)) cqr 1888 drivers/s390/block/dasd_eckd.c return PTR_ERR(cqr); cqr 1894 drivers/s390/block/dasd_eckd.c cqr->flags |= flags; cqr 1896 drivers/s390/block/dasd_eckd.c rc = dasd_sleep_on(cqr); cqr 1900 drivers/s390/block/dasd_eckd.c else if (cqr->intrc == -EAGAIN) cqr 1903 drivers/s390/block/dasd_eckd.c dasd_sfree_request(cqr, cqr->memdev); cqr 2143 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr; cqr 2150 drivers/s390/block/dasd_eckd.c cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, cplength, datasize, device, cqr 2152 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr)) cqr 2153 drivers/s390/block/dasd_eckd.c return cqr; cqr 2154 drivers/s390/block/dasd_eckd.c ccw = cqr->cpaddr; cqr 2156 drivers/s390/block/dasd_eckd.c define_extent(ccw++, cqr->data, 0, 1, cqr 2158 drivers/s390/block/dasd_eckd.c LO_data = cqr->data + sizeof(struct DE_eckd_data); cqr 2186 drivers/s390/block/dasd_eckd.c cqr->block = NULL; cqr 2187 drivers/s390/block/dasd_eckd.c cqr->startdev = device; cqr 2188 drivers/s390/block/dasd_eckd.c cqr->memdev = device; cqr 2189 drivers/s390/block/dasd_eckd.c cqr->retries = 255; cqr 2190 drivers/s390/block/dasd_eckd.c cqr->buildclk = get_tod_clock(); cqr 2191 drivers/s390/block/dasd_eckd.c cqr->status = DASD_CQR_FILLED; cqr 2193 drivers/s390/block/dasd_eckd.c set_bit(DASD_CQR_SUPPRESS_NRF, &cqr->flags); cqr 2195 drivers/s390/block/dasd_eckd.c return cqr; cqr 2411 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr; cqr 2434 drivers/s390/block/dasd_eckd.c cqr = dasd_fmalloc_request(DASD_ECKD_MAGIC, 0, itcw_size, startdev); cqr 2435 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr)) cqr 2436 drivers/s390/block/dasd_eckd.c return cqr; cqr 2440 drivers/s390/block/dasd_eckd.c itcw = itcw_init(cqr->data, itcw_size, ITCW_OP_READ, 0, count, 0); cqr 2446 drivers/s390/block/dasd_eckd.c cqr->cpaddr = itcw_get_tcw(itcw); cqr 2466 drivers/s390/block/dasd_eckd.c cqr->cpmode = 1; cqr 2467 drivers/s390/block/dasd_eckd.c cqr->startdev = startdev; cqr 2468 drivers/s390/block/dasd_eckd.c cqr->memdev = startdev; cqr 2469 drivers/s390/block/dasd_eckd.c cqr->basedev = base; cqr 2470 drivers/s390/block/dasd_eckd.c cqr->retries = startdev->default_retries; cqr 2471 drivers/s390/block/dasd_eckd.c cqr->expires = startdev->default_expires * HZ; cqr 2472 drivers/s390/block/dasd_eckd.c cqr->buildclk = get_tod_clock(); cqr 2473 drivers/s390/block/dasd_eckd.c cqr->status = DASD_CQR_FILLED; cqr 2475 drivers/s390/block/dasd_eckd.c set_bit(DASD_CQR_SUPPRESS_FP, &cqr->flags); cqr 2476 drivers/s390/block/dasd_eckd.c set_bit(DASD_CQR_SUPPRESS_IL, &cqr->flags); cqr 2478 drivers/s390/block/dasd_eckd.c return cqr; cqr 2481 drivers/s390/block/dasd_eckd.c dasd_sfree_request(cqr, startdev); cqr 2496 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr; cqr 2527 drivers/s390/block/dasd_eckd.c cqr = dasd_fmalloc_request(DASD_ECKD_MAGIC, cplength, datasize, startdev); cqr 2528 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr)) cqr 2529 drivers/s390/block/dasd_eckd.c return cqr; cqr 2532 drivers/s390/block/dasd_eckd.c data = cqr->data; cqr 2533 drivers/s390/block/dasd_eckd.c ccw = cqr->cpaddr; cqr 2560 drivers/s390/block/dasd_eckd.c cqr->startdev = startdev; cqr 2561 drivers/s390/block/dasd_eckd.c cqr->memdev = startdev; cqr 2562 drivers/s390/block/dasd_eckd.c cqr->basedev = base; cqr 2563 drivers/s390/block/dasd_eckd.c cqr->retries = DASD_RETRIES; cqr 2564 drivers/s390/block/dasd_eckd.c cqr->expires = startdev->default_expires * HZ; cqr 2565 drivers/s390/block/dasd_eckd.c cqr->buildclk = get_tod_clock(); cqr 2566 drivers/s390/block/dasd_eckd.c cqr->status = DASD_CQR_FILLED; cqr 2568 drivers/s390/block/dasd_eckd.c set_bit(DASD_CQR_SUPPRESS_NRF, &cqr->flags); cqr 2570 drivers/s390/block/dasd_eckd.c return cqr; cqr 2904 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr, *n; cqr 2942 drivers/s390/block/dasd_eckd.c cqr = dasd_eckd_format_build_ccw_req(base, fdata, cqr 2945 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr)) { cqr 2946 drivers/s390/block/dasd_eckd.c rc = PTR_ERR(cqr); cqr 2960 drivers/s390/block/dasd_eckd.c list_add_tail(&cqr->blocklist, &format_queue); cqr 2973 drivers/s390/block/dasd_eckd.c list_for_each_entry_safe(cqr, n, &format_queue, blocklist) { cqr 2974 drivers/s390/block/dasd_eckd.c device = cqr->startdev; cqr 2977 drivers/s390/block/dasd_eckd.c if (cqr->status == DASD_CQR_FAILED) { cqr 2983 drivers/s390/block/dasd_eckd.c sense = dasd_get_sense(&cqr->irb); cqr 2984 drivers/s390/block/dasd_eckd.c memcpy(irb, &cqr->irb, sizeof(*irb)); cqr 2988 drivers/s390/block/dasd_eckd.c list_del_init(&cqr->blocklist); cqr 2989 drivers/s390/block/dasd_eckd.c dasd_ffree_request(cqr, device); cqr 3062 drivers/s390/block/dasd_eckd.c static void dasd_eckd_ese_format_cb(struct dasd_ccw_req *cqr, void *data) cqr 3064 drivers/s390/block/dasd_eckd.c struct dasd_device *device = cqr->startdev; cqr 3068 drivers/s390/block/dasd_eckd.c clear_format_track(format, cqr->basedev->block); cqr 3070 drivers/s390/block/dasd_eckd.c dasd_ffree_request(cqr, device); cqr 3074 drivers/s390/block/dasd_eckd.c dasd_eckd_ese_format(struct dasd_device *startdev, struct dasd_ccw_req *cqr, cqr 3091 drivers/s390/block/dasd_eckd.c req = cqr->callback_data; cqr 3092 drivers/s390/block/dasd_eckd.c block = cqr->block; cqr 3154 drivers/s390/block/dasd_eckd.c static int dasd_eckd_ese_read(struct dasd_ccw_req *cqr, struct irb *irb) cqr 3173 drivers/s390/block/dasd_eckd.c req = (struct request *) cqr->callback_data; cqr 3174 drivers/s390/block/dasd_eckd.c base = cqr->block->base; cqr 3176 drivers/s390/block/dasd_eckd.c block = cqr->block; cqr 3213 drivers/s390/block/dasd_eckd.c cqr->proc_bytes = blk_count * blksize; cqr 3445 drivers/s390/block/dasd_eckd.c static void dasd_eckd_handle_terminated_request(struct dasd_ccw_req *cqr) cqr 3447 drivers/s390/block/dasd_eckd.c if (cqr->retries < 0) { cqr 3448 drivers/s390/block/dasd_eckd.c cqr->status = DASD_CQR_FAILED; cqr 3451 drivers/s390/block/dasd_eckd.c cqr->status = DASD_CQR_FILLED; cqr 3452 drivers/s390/block/dasd_eckd.c if (cqr->block && (cqr->startdev != cqr->block->base)) { cqr 3453 drivers/s390/block/dasd_eckd.c dasd_eckd_reset_ccw_to_base_io(cqr); cqr 3454 drivers/s390/block/dasd_eckd.c cqr->startdev = cqr->block->base; cqr 3455 drivers/s390/block/dasd_eckd.c cqr->lpm = dasd_path_get_opm(cqr->block->base); cqr 3460 drivers/s390/block/dasd_eckd.c dasd_eckd_erp_action(struct dasd_ccw_req * cqr) cqr 3462 drivers/s390/block/dasd_eckd.c struct dasd_device *device = (struct dasd_device *) cqr->startdev; cqr 3479 drivers/s390/block/dasd_eckd.c dasd_eckd_erp_postaction(struct dasd_ccw_req * cqr) cqr 3485 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr, cqr 3542 drivers/s390/block/dasd_eckd.c if (!cqr && !(sense[27] & DASD_SENSE_BIT_0) && cqr 3640 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr; cqr 3664 drivers/s390/block/dasd_eckd.c cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1, size, device, rq); cqr 3665 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr)) { cqr 3668 drivers/s390/block/dasd_eckd.c return cqr; cqr 3671 drivers/s390/block/dasd_eckd.c ras_data = cqr->data; cqr 3695 drivers/s390/block/dasd_eckd.c ras_range = (struct dasd_dso_ras_ext_range *)(cqr->data + ras_size); cqr 3714 drivers/s390/block/dasd_eckd.c ccw = cqr->cpaddr; cqr 3715 drivers/s390/block/dasd_eckd.c ccw->cda = (__u32)(addr_t)cqr->data; cqr 3719 drivers/s390/block/dasd_eckd.c cqr->startdev = device; cqr 3720 drivers/s390/block/dasd_eckd.c cqr->memdev = device; cqr 3721 drivers/s390/block/dasd_eckd.c cqr->block = block; cqr 3722 drivers/s390/block/dasd_eckd.c cqr->retries = 256; cqr 3723 drivers/s390/block/dasd_eckd.c cqr->expires = device->default_expires * HZ; cqr 3724 drivers/s390/block/dasd_eckd.c cqr->buildclk = get_tod_clock(); cqr 3725 drivers/s390/block/dasd_eckd.c cqr->status = DASD_CQR_FILLED; cqr 3727 drivers/s390/block/dasd_eckd.c return cqr; cqr 3732 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr; cqr 3735 drivers/s390/block/dasd_eckd.c cqr = dasd_eckd_dso_ras(device, NULL, NULL, 0, 0, 0); cqr 3736 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr)) cqr 3737 drivers/s390/block/dasd_eckd.c return PTR_ERR(cqr); cqr 3739 drivers/s390/block/dasd_eckd.c rc = dasd_sleep_on_interruptible(cqr); cqr 3741 drivers/s390/block/dasd_eckd.c dasd_sfree_request(cqr, cqr->memdev); cqr 3751 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr, *n; cqr 3777 drivers/s390/block/dasd_eckd.c cqr = dasd_eckd_dso_ras(device, NULL, NULL, cur_pos, stop, 1); cqr 3778 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr)) { cqr 3779 drivers/s390/block/dasd_eckd.c rc = PTR_ERR(cqr); cqr 3790 drivers/s390/block/dasd_eckd.c list_add_tail(&cqr->blocklist, &ras_queue); cqr 3798 drivers/s390/block/dasd_eckd.c list_for_each_entry_safe(cqr, n, &ras_queue, blocklist) { cqr 3799 drivers/s390/block/dasd_eckd.c device = cqr->startdev; cqr 3803 drivers/s390/block/dasd_eckd.c list_del_init(&cqr->blocklist); cqr 3805 drivers/s390/block/dasd_eckd.c dasd_sfree_request(cqr, device); cqr 3842 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr; cqr 3903 drivers/s390/block/dasd_eckd.c cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, cplength, datasize, cqr 3905 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr)) cqr 3906 drivers/s390/block/dasd_eckd.c return cqr; cqr 3907 drivers/s390/block/dasd_eckd.c ccw = cqr->cpaddr; cqr 3910 drivers/s390/block/dasd_eckd.c if (prefix(ccw++, cqr->data, first_trk, cqr 3915 drivers/s390/block/dasd_eckd.c dasd_sfree_request(cqr, startdev); cqr 3918 drivers/s390/block/dasd_eckd.c idaws = (unsigned long *) (cqr->data + cqr 3921 drivers/s390/block/dasd_eckd.c if (define_extent(ccw++, cqr->data, first_trk, cqr 3926 drivers/s390/block/dasd_eckd.c dasd_sfree_request(cqr, startdev); cqr 3929 drivers/s390/block/dasd_eckd.c idaws = (unsigned long *) (cqr->data + cqr 3998 drivers/s390/block/dasd_eckd.c set_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags); cqr 3999 drivers/s390/block/dasd_eckd.c cqr->startdev = startdev; cqr 4000 drivers/s390/block/dasd_eckd.c cqr->memdev = startdev; cqr 4001 drivers/s390/block/dasd_eckd.c cqr->block = block; cqr 4002 drivers/s390/block/dasd_eckd.c cqr->expires = startdev->default_expires * HZ; /* default 5 minutes */ cqr 4003 drivers/s390/block/dasd_eckd.c cqr->lpm = dasd_path_get_ppm(startdev); cqr 4004 drivers/s390/block/dasd_eckd.c cqr->retries = startdev->default_retries; cqr 4005 drivers/s390/block/dasd_eckd.c cqr->buildclk = get_tod_clock(); cqr 4006 drivers/s390/block/dasd_eckd.c cqr->status = DASD_CQR_FILLED; cqr 4010 drivers/s390/block/dasd_eckd.c set_bit(DASD_CQR_SUPPRESS_FP, &cqr->flags); cqr 4011 drivers/s390/block/dasd_eckd.c set_bit(DASD_CQR_SUPPRESS_IL, &cqr->flags); cqr 4012 drivers/s390/block/dasd_eckd.c set_bit(DASD_CQR_SUPPRESS_NRF, &cqr->flags); cqr 4015 drivers/s390/block/dasd_eckd.c return cqr; cqr 4032 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr; cqr 4070 drivers/s390/block/dasd_eckd.c cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, cplength, datasize, cqr 4072 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr)) cqr 4073 drivers/s390/block/dasd_eckd.c return cqr; cqr 4074 drivers/s390/block/dasd_eckd.c ccw = cqr->cpaddr; cqr 4082 drivers/s390/block/dasd_eckd.c if (prefix_LRE(ccw++, cqr->data, first_trk, cqr 4090 drivers/s390/block/dasd_eckd.c dasd_sfree_request(cqr, startdev); cqr 4101 drivers/s390/block/dasd_eckd.c idaws = (unsigned long *) (cqr->data + sizeof(struct PFX_eckd_data)); cqr 4139 drivers/s390/block/dasd_eckd.c dasd_sfree_request(cqr, startdev); cqr 4145 drivers/s390/block/dasd_eckd.c dasd_sfree_request(cqr, startdev); cqr 4177 drivers/s390/block/dasd_eckd.c set_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags); cqr 4178 drivers/s390/block/dasd_eckd.c cqr->startdev = startdev; cqr 4179 drivers/s390/block/dasd_eckd.c cqr->memdev = startdev; cqr 4180 drivers/s390/block/dasd_eckd.c cqr->block = block; cqr 4181 drivers/s390/block/dasd_eckd.c cqr->expires = startdev->default_expires * HZ; /* default 5 minutes */ cqr 4182 drivers/s390/block/dasd_eckd.c cqr->lpm = dasd_path_get_ppm(startdev); cqr 4183 drivers/s390/block/dasd_eckd.c cqr->retries = startdev->default_retries; cqr 4184 drivers/s390/block/dasd_eckd.c cqr->buildclk = get_tod_clock(); cqr 4185 drivers/s390/block/dasd_eckd.c cqr->status = DASD_CQR_FILLED; cqr 4189 drivers/s390/block/dasd_eckd.c set_bit(DASD_CQR_SUPPRESS_NRF, &cqr->flags); cqr 4191 drivers/s390/block/dasd_eckd.c return cqr; cqr 4363 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr; cqr 4409 drivers/s390/block/dasd_eckd.c cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 0, itcw_size, startdev, cqr 4411 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr)) cqr 4412 drivers/s390/block/dasd_eckd.c return cqr; cqr 4421 drivers/s390/block/dasd_eckd.c itcw = itcw_init(cqr->data, itcw_size, itcw_op, 0, ctidaw, 0); cqr 4426 drivers/s390/block/dasd_eckd.c cqr->cpaddr = itcw_get_tcw(itcw); cqr 4500 drivers/s390/block/dasd_eckd.c set_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags); cqr 4501 drivers/s390/block/dasd_eckd.c cqr->cpmode = 1; cqr 4502 drivers/s390/block/dasd_eckd.c cqr->startdev = startdev; cqr 4503 drivers/s390/block/dasd_eckd.c cqr->memdev = startdev; cqr 4504 drivers/s390/block/dasd_eckd.c cqr->block = block; cqr 4505 drivers/s390/block/dasd_eckd.c cqr->expires = startdev->default_expires * HZ; /* default 5 minutes */ cqr 4506 drivers/s390/block/dasd_eckd.c cqr->lpm = dasd_path_get_ppm(startdev); cqr 4507 drivers/s390/block/dasd_eckd.c cqr->retries = startdev->default_retries; cqr 4508 drivers/s390/block/dasd_eckd.c cqr->buildclk = get_tod_clock(); cqr 4509 drivers/s390/block/dasd_eckd.c cqr->status = DASD_CQR_FILLED; cqr 4513 drivers/s390/block/dasd_eckd.c set_bit(DASD_CQR_SUPPRESS_FP, &cqr->flags); cqr 4514 drivers/s390/block/dasd_eckd.c set_bit(DASD_CQR_SUPPRESS_IL, &cqr->flags); cqr 4515 drivers/s390/block/dasd_eckd.c set_bit(DASD_CQR_SUPPRESS_NRF, &cqr->flags); cqr 4518 drivers/s390/block/dasd_eckd.c return cqr; cqr 4520 drivers/s390/block/dasd_eckd.c dasd_sfree_request(cqr, startdev); cqr 4539 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr; cqr 4570 drivers/s390/block/dasd_eckd.c cqr = NULL; cqr 4575 drivers/s390/block/dasd_eckd.c cqr = dasd_eckd_build_cp_tpm_track(startdev, block, req, cqr 4580 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr) && (PTR_ERR(cqr) != -EAGAIN) && cqr 4581 drivers/s390/block/dasd_eckd.c (PTR_ERR(cqr) != -ENOMEM)) cqr 4582 drivers/s390/block/dasd_eckd.c cqr = NULL; cqr 4586 drivers/s390/block/dasd_eckd.c cqr = dasd_eckd_build_cp_cmd_track(startdev, block, req, cqr 4591 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr) && (PTR_ERR(cqr) != -EAGAIN) && cqr 4592 drivers/s390/block/dasd_eckd.c (PTR_ERR(cqr) != -ENOMEM)) cqr 4593 drivers/s390/block/dasd_eckd.c cqr = NULL; cqr 4595 drivers/s390/block/dasd_eckd.c if (!cqr) cqr 4596 drivers/s390/block/dasd_eckd.c cqr = dasd_eckd_build_cp_cmd_single(startdev, block, req, cqr 4601 drivers/s390/block/dasd_eckd.c return cqr; cqr 4615 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr; cqr 4684 drivers/s390/block/dasd_eckd.c cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, cplength, cqr 4686 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr)) cqr 4687 drivers/s390/block/dasd_eckd.c return cqr; cqr 4689 drivers/s390/block/dasd_eckd.c ccw = cqr->cpaddr; cqr 4690 drivers/s390/block/dasd_eckd.c data = cqr->data; cqr 4704 drivers/s390/block/dasd_eckd.c idaws = (unsigned long *)(cqr->data + size); cqr 4744 drivers/s390/block/dasd_eckd.c set_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags); cqr 4745 drivers/s390/block/dasd_eckd.c cqr->startdev = startdev; cqr 4746 drivers/s390/block/dasd_eckd.c cqr->memdev = startdev; cqr 4747 drivers/s390/block/dasd_eckd.c cqr->block = block; cqr 4748 drivers/s390/block/dasd_eckd.c cqr->expires = startdev->default_expires * HZ; cqr 4749 drivers/s390/block/dasd_eckd.c cqr->lpm = dasd_path_get_ppm(startdev); cqr 4750 drivers/s390/block/dasd_eckd.c cqr->retries = startdev->default_retries; cqr 4751 drivers/s390/block/dasd_eckd.c cqr->buildclk = get_tod_clock(); cqr 4752 drivers/s390/block/dasd_eckd.c cqr->status = DASD_CQR_FILLED; cqr 4754 drivers/s390/block/dasd_eckd.c return cqr; cqr 4759 drivers/s390/block/dasd_eckd.c dasd_eckd_free_cp(struct dasd_ccw_req *cqr, struct request *req) cqr 4772 drivers/s390/block/dasd_eckd.c private = cqr->block->base->private; cqr 4773 drivers/s390/block/dasd_eckd.c blksize = cqr->block->bp_block; cqr 4775 drivers/s390/block/dasd_eckd.c recid = blk_rq_pos(req) >> cqr->block->s2b_shift; cqr 4776 drivers/s390/block/dasd_eckd.c ccw = cqr->cpaddr; cqr 4805 drivers/s390/block/dasd_eckd.c status = cqr->status == DASD_CQR_DONE; cqr 4806 drivers/s390/block/dasd_eckd.c dasd_sfree_request(cqr, cqr->memdev); cqr 4817 drivers/s390/block/dasd_eckd.c void dasd_eckd_reset_ccw_to_base_io(struct dasd_ccw_req *cqr) cqr 4825 drivers/s390/block/dasd_eckd.c if (cqr->cpmode == 1) { cqr 4826 drivers/s390/block/dasd_eckd.c tcw = cqr->cpaddr; cqr 4833 drivers/s390/block/dasd_eckd.c ccw = cqr->cpaddr; cqr 4834 drivers/s390/block/dasd_eckd.c pfxdata = cqr->data; cqr 4851 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr; cqr 4863 drivers/s390/block/dasd_eckd.c cqr = dasd_eckd_build_cp_raw(startdev, block, req); cqr 4865 drivers/s390/block/dasd_eckd.c cqr = dasd_eckd_build_cp(startdev, block, req); cqr 4866 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr)) cqr 4869 drivers/s390/block/dasd_eckd.c return cqr; cqr 4872 drivers/s390/block/dasd_eckd.c static int dasd_eckd_free_alias_cp(struct dasd_ccw_req *cqr, cqr 4878 drivers/s390/block/dasd_eckd.c spin_lock_irqsave(get_ccwdev_lock(cqr->memdev->cdev), flags); cqr 4879 drivers/s390/block/dasd_eckd.c private = cqr->memdev->private; cqr 4881 drivers/s390/block/dasd_eckd.c spin_unlock_irqrestore(get_ccwdev_lock(cqr->memdev->cdev), flags); cqr 4882 drivers/s390/block/dasd_eckd.c return dasd_eckd_free_cp(cqr, req); cqr 4916 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr; cqr 4925 drivers/s390/block/dasd_eckd.c cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1, 32, device, NULL); cqr 4926 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr)) { cqr 4929 drivers/s390/block/dasd_eckd.c cqr = &dasd_reserve_req->cqr; cqr 4930 drivers/s390/block/dasd_eckd.c memset(cqr, 0, sizeof(*cqr)); cqr 4933 drivers/s390/block/dasd_eckd.c cqr->cpaddr = &dasd_reserve_req->ccw; cqr 4934 drivers/s390/block/dasd_eckd.c cqr->data = &dasd_reserve_req->data; cqr 4935 drivers/s390/block/dasd_eckd.c cqr->magic = DASD_ECKD_MAGIC; cqr 4937 drivers/s390/block/dasd_eckd.c ccw = cqr->cpaddr; cqr 4941 drivers/s390/block/dasd_eckd.c ccw->cda = (__u32)(addr_t) cqr->data; cqr 4942 drivers/s390/block/dasd_eckd.c cqr->startdev = device; cqr 4943 drivers/s390/block/dasd_eckd.c cqr->memdev = device; cqr 4944 drivers/s390/block/dasd_eckd.c clear_bit(DASD_CQR_FLAGS_USE_ERP, &cqr->flags); cqr 4945 drivers/s390/block/dasd_eckd.c set_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags); cqr 4946 drivers/s390/block/dasd_eckd.c cqr->retries = 2; /* set retry counter to enable basic ERP */ cqr 4947 drivers/s390/block/dasd_eckd.c cqr->expires = 2 * HZ; cqr 4948 drivers/s390/block/dasd_eckd.c cqr->buildclk = get_tod_clock(); cqr 4949 drivers/s390/block/dasd_eckd.c cqr->status = DASD_CQR_FILLED; cqr 4951 drivers/s390/block/dasd_eckd.c rc = dasd_sleep_on_immediatly(cqr); cqr 4958 drivers/s390/block/dasd_eckd.c dasd_sfree_request(cqr, cqr->memdev); cqr 4971 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr; cqr 4980 drivers/s390/block/dasd_eckd.c cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1, 32, device, NULL); cqr 4981 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr)) { cqr 4984 drivers/s390/block/dasd_eckd.c cqr = &dasd_reserve_req->cqr; cqr 4985 drivers/s390/block/dasd_eckd.c memset(cqr, 0, sizeof(*cqr)); cqr 4988 drivers/s390/block/dasd_eckd.c cqr->cpaddr = &dasd_reserve_req->ccw; cqr 4989 drivers/s390/block/dasd_eckd.c cqr->data = &dasd_reserve_req->data; cqr 4990 drivers/s390/block/dasd_eckd.c cqr->magic = DASD_ECKD_MAGIC; cqr 4992 drivers/s390/block/dasd_eckd.c ccw = cqr->cpaddr; cqr 4996 drivers/s390/block/dasd_eckd.c ccw->cda = (__u32)(addr_t) cqr->data; cqr 4997 drivers/s390/block/dasd_eckd.c cqr->startdev = device; cqr 4998 drivers/s390/block/dasd_eckd.c cqr->memdev = device; cqr 4999 drivers/s390/block/dasd_eckd.c clear_bit(DASD_CQR_FLAGS_USE_ERP, &cqr->flags); cqr 5000 drivers/s390/block/dasd_eckd.c set_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags); cqr 5001 drivers/s390/block/dasd_eckd.c cqr->retries = 2; /* set retry counter to enable basic ERP */ cqr 5002 drivers/s390/block/dasd_eckd.c cqr->expires = 2 * HZ; cqr 5003 drivers/s390/block/dasd_eckd.c cqr->buildclk = get_tod_clock(); cqr 5004 drivers/s390/block/dasd_eckd.c cqr->status = DASD_CQR_FILLED; cqr 5006 drivers/s390/block/dasd_eckd.c rc = dasd_sleep_on_immediatly(cqr); cqr 5013 drivers/s390/block/dasd_eckd.c dasd_sfree_request(cqr, cqr->memdev); cqr 5025 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr; cqr 5034 drivers/s390/block/dasd_eckd.c cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1, 32, device, NULL); cqr 5035 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr)) { cqr 5038 drivers/s390/block/dasd_eckd.c cqr = &dasd_reserve_req->cqr; cqr 5039 drivers/s390/block/dasd_eckd.c memset(cqr, 0, sizeof(*cqr)); cqr 5042 drivers/s390/block/dasd_eckd.c cqr->cpaddr = &dasd_reserve_req->ccw; cqr 5043 drivers/s390/block/dasd_eckd.c cqr->data = &dasd_reserve_req->data; cqr 5044 drivers/s390/block/dasd_eckd.c cqr->magic = DASD_ECKD_MAGIC; cqr 5046 drivers/s390/block/dasd_eckd.c ccw = cqr->cpaddr; cqr 5050 drivers/s390/block/dasd_eckd.c ccw->cda = (__u32)(addr_t) cqr->data; cqr 5051 drivers/s390/block/dasd_eckd.c cqr->startdev = device; cqr 5052 drivers/s390/block/dasd_eckd.c cqr->memdev = device; cqr 5053 drivers/s390/block/dasd_eckd.c clear_bit(DASD_CQR_FLAGS_USE_ERP, &cqr->flags); cqr 5054 drivers/s390/block/dasd_eckd.c set_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags); cqr 5055 drivers/s390/block/dasd_eckd.c cqr->retries = 2; /* set retry counter to enable basic ERP */ cqr 5056 drivers/s390/block/dasd_eckd.c cqr->expires = 2 * HZ; cqr 5057 drivers/s390/block/dasd_eckd.c cqr->buildclk = get_tod_clock(); cqr 5058 drivers/s390/block/dasd_eckd.c cqr->status = DASD_CQR_FILLED; cqr 5060 drivers/s390/block/dasd_eckd.c rc = dasd_sleep_on_immediatly(cqr); cqr 5067 drivers/s390/block/dasd_eckd.c dasd_sfree_request(cqr, cqr->memdev); cqr 5080 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr; cqr 5093 drivers/s390/block/dasd_eckd.c cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1, cqr 5096 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr)) { cqr 5099 drivers/s390/block/dasd_eckd.c cqr = &dasd_reserve_req->cqr; cqr 5100 drivers/s390/block/dasd_eckd.c memset(cqr, 0, sizeof(*cqr)); cqr 5103 drivers/s390/block/dasd_eckd.c cqr->cpaddr = &dasd_reserve_req->ccw; cqr 5104 drivers/s390/block/dasd_eckd.c cqr->data = &dasd_reserve_req->data; cqr 5105 drivers/s390/block/dasd_eckd.c cqr->magic = DASD_ECKD_MAGIC; cqr 5107 drivers/s390/block/dasd_eckd.c ccw = cqr->cpaddr; cqr 5111 drivers/s390/block/dasd_eckd.c ccw->cda = (__u32)(addr_t) cqr->data; cqr 5112 drivers/s390/block/dasd_eckd.c cqr->startdev = device; cqr 5113 drivers/s390/block/dasd_eckd.c cqr->memdev = device; cqr 5114 drivers/s390/block/dasd_eckd.c clear_bit(DASD_CQR_FLAGS_USE_ERP, &cqr->flags); cqr 5115 drivers/s390/block/dasd_eckd.c set_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags); cqr 5116 drivers/s390/block/dasd_eckd.c set_bit(DASD_CQR_ALLOW_SLOCK, &cqr->flags); cqr 5117 drivers/s390/block/dasd_eckd.c cqr->retries = 5; cqr 5118 drivers/s390/block/dasd_eckd.c cqr->expires = 10 * HZ; cqr 5119 drivers/s390/block/dasd_eckd.c cqr->buildclk = get_tod_clock(); cqr 5120 drivers/s390/block/dasd_eckd.c cqr->status = DASD_CQR_FILLED; cqr 5121 drivers/s390/block/dasd_eckd.c cqr->lpm = usrparm.path_mask; cqr 5123 drivers/s390/block/dasd_eckd.c rc = dasd_sleep_on_immediatly(cqr); cqr 5125 drivers/s390/block/dasd_eckd.c if (!rc && usrparm.path_mask && (cqr->lpm != usrparm.path_mask)) cqr 5128 drivers/s390/block/dasd_eckd.c usrparm.data = *((struct dasd_snid_data *)cqr->data); cqr 5136 drivers/s390/block/dasd_eckd.c dasd_sfree_request(cqr, cqr->memdev); cqr 5148 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr; cqr 5152 drivers/s390/block/dasd_eckd.c cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1 /* PSF */ + 1 /* RSSD */, cqr 5156 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr)) { cqr 5159 drivers/s390/block/dasd_eckd.c return PTR_ERR(cqr); cqr 5161 drivers/s390/block/dasd_eckd.c cqr->startdev = device; cqr 5162 drivers/s390/block/dasd_eckd.c cqr->memdev = device; cqr 5163 drivers/s390/block/dasd_eckd.c cqr->retries = 0; cqr 5164 drivers/s390/block/dasd_eckd.c clear_bit(DASD_CQR_FLAGS_USE_ERP, &cqr->flags); cqr 5165 drivers/s390/block/dasd_eckd.c cqr->expires = 10 * HZ; cqr 5168 drivers/s390/block/dasd_eckd.c prssdp = (struct dasd_psf_prssd_data *) cqr->data; cqr 5174 drivers/s390/block/dasd_eckd.c ccw = cqr->cpaddr; cqr 5189 drivers/s390/block/dasd_eckd.c cqr->buildclk = get_tod_clock(); cqr 5190 drivers/s390/block/dasd_eckd.c cqr->status = DASD_CQR_FILLED; cqr 5191 drivers/s390/block/dasd_eckd.c rc = dasd_sleep_on(cqr); cqr 5193 drivers/s390/block/dasd_eckd.c prssdp = (struct dasd_psf_prssd_data *) cqr->data; cqr 5199 drivers/s390/block/dasd_eckd.c dasd_sfree_request(cqr, cqr->memdev); cqr 5260 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr; cqr 5309 drivers/s390/block/dasd_eckd.c cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 2, 0, device, NULL); cqr 5310 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr)) { cqr 5313 drivers/s390/block/dasd_eckd.c rc = PTR_ERR(cqr); cqr 5317 drivers/s390/block/dasd_eckd.c cqr->startdev = device; cqr 5318 drivers/s390/block/dasd_eckd.c cqr->memdev = device; cqr 5319 drivers/s390/block/dasd_eckd.c cqr->retries = 3; cqr 5320 drivers/s390/block/dasd_eckd.c cqr->expires = 10 * HZ; cqr 5321 drivers/s390/block/dasd_eckd.c cqr->buildclk = get_tod_clock(); cqr 5322 drivers/s390/block/dasd_eckd.c cqr->status = DASD_CQR_FILLED; cqr 5325 drivers/s390/block/dasd_eckd.c ccw = cqr->cpaddr; cqr 5341 drivers/s390/block/dasd_eckd.c rc = dasd_sleep_on(cqr); cqr 5352 drivers/s390/block/dasd_eckd.c dasd_sfree_request(cqr, cqr->memdev); cqr 5868 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr; cqr 5872 drivers/s390/block/dasd_eckd.c cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1 /* PSF */ + 1 /* RSSD */, cqr 5876 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr)) { cqr 5879 drivers/s390/block/dasd_eckd.c return PTR_ERR(cqr); cqr 5882 drivers/s390/block/dasd_eckd.c cqr->lpm = lpum; cqr 5884 drivers/s390/block/dasd_eckd.c cqr->startdev = device; cqr 5885 drivers/s390/block/dasd_eckd.c cqr->memdev = device; cqr 5886 drivers/s390/block/dasd_eckd.c cqr->block = NULL; cqr 5887 drivers/s390/block/dasd_eckd.c cqr->expires = 10 * HZ; cqr 5888 drivers/s390/block/dasd_eckd.c set_bit(DASD_CQR_VERIFY_PATH, &cqr->flags); cqr 5892 drivers/s390/block/dasd_eckd.c clear_bit(DASD_CQR_FLAGS_USE_ERP, &cqr->flags); cqr 5893 drivers/s390/block/dasd_eckd.c cqr->retries = 256; cqr 5896 drivers/s390/block/dasd_eckd.c prssdp = (struct dasd_psf_prssd_data *) cqr->data; cqr 5902 drivers/s390/block/dasd_eckd.c ccw = cqr->cpaddr; cqr 5919 drivers/s390/block/dasd_eckd.c cqr->buildclk = get_tod_clock(); cqr 5920 drivers/s390/block/dasd_eckd.c cqr->status = DASD_CQR_FILLED; cqr 5921 drivers/s390/block/dasd_eckd.c rc = dasd_sleep_on_immediatly(cqr); cqr 5923 drivers/s390/block/dasd_eckd.c prssdp = (struct dasd_psf_prssd_data *) cqr->data; cqr 5928 drivers/s390/block/dasd_eckd.c } else if (cqr->lpm) { cqr 5934 drivers/s390/block/dasd_eckd.c cqr->lpm = 0; cqr 5940 drivers/s390/block/dasd_eckd.c dasd_sfree_request(cqr, cqr->memdev); cqr 5950 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr; cqr 5962 drivers/s390/block/dasd_eckd.c cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1 /* PSF */ + 1 /* RSSD */, cqr 5965 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr)) { cqr 5968 drivers/s390/block/dasd_eckd.c return PTR_ERR(cqr); cqr 5972 drivers/s390/block/dasd_eckd.c dasd_sfree_request(cqr, device); cqr 5977 drivers/s390/block/dasd_eckd.c cqr->startdev = device; cqr 5978 drivers/s390/block/dasd_eckd.c cqr->memdev = device; cqr 5979 drivers/s390/block/dasd_eckd.c cqr->block = NULL; cqr 5980 drivers/s390/block/dasd_eckd.c cqr->retries = 256; cqr 5981 drivers/s390/block/dasd_eckd.c cqr->expires = 10 * HZ; cqr 5984 drivers/s390/block/dasd_eckd.c prssdp = (struct dasd_psf_prssd_data *) cqr->data; cqr 5993 drivers/s390/block/dasd_eckd.c ccw = cqr->cpaddr; cqr 6007 drivers/s390/block/dasd_eckd.c cqr->buildclk = get_tod_clock(); cqr 6008 drivers/s390/block/dasd_eckd.c cqr->status = DASD_CQR_FILLED; cqr 6010 drivers/s390/block/dasd_eckd.c __set_bit(DASD_CQR_SUPPRESS_CR, &cqr->flags); cqr 6011 drivers/s390/block/dasd_eckd.c rc = dasd_sleep_on_interruptible(cqr); cqr 6021 drivers/s390/block/dasd_eckd.c dasd_sfree_request(cqr, cqr->memdev); cqr 6117 drivers/s390/block/dasd_eckd.c struct dasd_ccw_req *cqr; cqr 6121 drivers/s390/block/dasd_eckd.c cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1 /* PSF */ , cqr 6125 drivers/s390/block/dasd_eckd.c if (IS_ERR(cqr)) { cqr 6128 drivers/s390/block/dasd_eckd.c return PTR_ERR(cqr); cqr 6131 drivers/s390/block/dasd_eckd.c psf_cuir = (struct dasd_psf_cuir_response *)cqr->data; cqr 6138 drivers/s390/block/dasd_eckd.c ccw = cqr->cpaddr; cqr 6144 drivers/s390/block/dasd_eckd.c cqr->startdev = device; cqr 6145 drivers/s390/block/dasd_eckd.c cqr->memdev = device; cqr 6146 drivers/s390/block/dasd_eckd.c cqr->block = NULL; cqr 6147 drivers/s390/block/dasd_eckd.c cqr->retries = 256; cqr 6148 drivers/s390/block/dasd_eckd.c cqr->expires = 10*HZ; cqr 6149 drivers/s390/block/dasd_eckd.c cqr->buildclk = get_tod_clock(); cqr 6150 drivers/s390/block/dasd_eckd.c cqr->status = DASD_CQR_FILLED; cqr 6151 drivers/s390/block/dasd_eckd.c set_bit(DASD_CQR_VERIFY_PATH, &cqr->flags); cqr 6153 drivers/s390/block/dasd_eckd.c rc = dasd_sleep_on(cqr); cqr 6155 drivers/s390/block/dasd_eckd.c dasd_sfree_request(cqr, cqr->memdev); cqr 294 drivers/s390/block/dasd_eer.c struct dasd_ccw_req *cqr, cqr 307 drivers/s390/block/dasd_eer.c for (temp_cqr = cqr; temp_cqr; temp_cqr = temp_cqr->refers) cqr 323 drivers/s390/block/dasd_eer.c for (temp_cqr = cqr; temp_cqr; temp_cqr = temp_cqr->refers) { cqr 338 drivers/s390/block/dasd_eer.c struct dasd_ccw_req *cqr, cqr 348 drivers/s390/block/dasd_eer.c snss_rc = (cqr->status == DASD_CQR_DONE) ? 0 : -EIO; cqr 367 drivers/s390/block/dasd_eer.c dasd_eer_write_buffer(eerb, cqr->data, SNSS_DATA_SIZE); cqr 378 drivers/s390/block/dasd_eer.c void dasd_eer_write(struct dasd_device *device, struct dasd_ccw_req *cqr, cqr 386 drivers/s390/block/dasd_eer.c dasd_eer_write_standard_trigger(device, cqr, id); cqr 393 drivers/s390/block/dasd_eer.c dasd_eer_write_snss_trigger(device, cqr, id); cqr 408 drivers/s390/block/dasd_eer.c struct dasd_ccw_req *cqr; cqr 410 drivers/s390/block/dasd_eer.c cqr = device->eer_cqr; cqr 411 drivers/s390/block/dasd_eer.c if (!cqr) /* Device not eer enabled. */ cqr 420 drivers/s390/block/dasd_eer.c cqr->status = DASD_CQR_QUEUED; cqr 421 drivers/s390/block/dasd_eer.c list_add(&cqr->devlist, &device->ccw_queue); cqr 428 drivers/s390/block/dasd_eer.c static void dasd_eer_snss_cb(struct dasd_ccw_req *cqr, void *data) cqr 430 drivers/s390/block/dasd_eer.c struct dasd_device *device = cqr->startdev; cqr 433 drivers/s390/block/dasd_eer.c dasd_eer_write(device, cqr, DASD_EER_STATECHANGE); cqr 435 drivers/s390/block/dasd_eer.c if (device->eer_cqr == cqr) { cqr 440 drivers/s390/block/dasd_eer.c cqr = NULL; cqr 443 drivers/s390/block/dasd_eer.c if (cqr) cqr 451 drivers/s390/block/dasd_eer.c dasd_sfree_request(cqr, device); cqr 459 drivers/s390/block/dasd_eer.c struct dasd_ccw_req *cqr = NULL; cqr 476 drivers/s390/block/dasd_eer.c cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1 /* SNSS */, cqr 478 drivers/s390/block/dasd_eer.c if (IS_ERR(cqr)) { cqr 480 drivers/s390/block/dasd_eer.c cqr = NULL; cqr 484 drivers/s390/block/dasd_eer.c cqr->startdev = device; cqr 485 drivers/s390/block/dasd_eer.c cqr->retries = 255; cqr 486 drivers/s390/block/dasd_eer.c cqr->expires = 10 * HZ; cqr 487 drivers/s390/block/dasd_eer.c clear_bit(DASD_CQR_FLAGS_USE_ERP, &cqr->flags); cqr 488 drivers/s390/block/dasd_eer.c set_bit(DASD_CQR_ALLOW_SLOCK, &cqr->flags); cqr 490 drivers/s390/block/dasd_eer.c ccw = cqr->cpaddr; cqr 494 drivers/s390/block/dasd_eer.c ccw->cda = (__u32)(addr_t) cqr->data; cqr 496 drivers/s390/block/dasd_eer.c cqr->buildclk = get_tod_clock(); cqr 497 drivers/s390/block/dasd_eer.c cqr->status = DASD_CQR_FILLED; cqr 498 drivers/s390/block/dasd_eer.c cqr->callback = dasd_eer_snss_cb; cqr 501 drivers/s390/block/dasd_eer.c device->eer_cqr = cqr; cqr 502 drivers/s390/block/dasd_eer.c cqr = NULL; cqr 508 drivers/s390/block/dasd_eer.c if (cqr) cqr 509 drivers/s390/block/dasd_eer.c dasd_sfree_request(cqr, device); cqr 519 drivers/s390/block/dasd_eer.c struct dasd_ccw_req *cqr; cqr 526 drivers/s390/block/dasd_eer.c cqr = device->eer_cqr; cqr 531 drivers/s390/block/dasd_eer.c if (cqr && !in_use) cqr 532 drivers/s390/block/dasd_eer.c dasd_sfree_request(cqr, device); cqr 31 drivers/s390/block/dasd_erp.c struct dasd_ccw_req *cqr; cqr 45 drivers/s390/block/dasd_erp.c cqr = (struct dasd_ccw_req *) cqr 48 drivers/s390/block/dasd_erp.c if (cqr == NULL) cqr 50 drivers/s390/block/dasd_erp.c memset(cqr, 0, sizeof(struct dasd_ccw_req)); cqr 51 drivers/s390/block/dasd_erp.c INIT_LIST_HEAD(&cqr->devlist); cqr 52 drivers/s390/block/dasd_erp.c INIT_LIST_HEAD(&cqr->blocklist); cqr 53 drivers/s390/block/dasd_erp.c data = (char *) cqr + ((sizeof(struct dasd_ccw_req) + 7L) & -8L); cqr 54 drivers/s390/block/dasd_erp.c cqr->cpaddr = NULL; cqr 56 drivers/s390/block/dasd_erp.c cqr->cpaddr = (struct ccw1 *) data; cqr 58 drivers/s390/block/dasd_erp.c memset(cqr->cpaddr, 0, cplength*sizeof(struct ccw1)); cqr 60 drivers/s390/block/dasd_erp.c cqr->data = NULL; cqr 62 drivers/s390/block/dasd_erp.c cqr->data = data; cqr 63 drivers/s390/block/dasd_erp.c memset(cqr->data, 0, datasize); cqr 65 drivers/s390/block/dasd_erp.c strncpy((char *) &cqr->magic, magic, 4); cqr 66 drivers/s390/block/dasd_erp.c ASCEBC((char *) &cqr->magic, 4); cqr 67 drivers/s390/block/dasd_erp.c set_bit(DASD_CQR_FLAGS_USE_ERP, &cqr->flags); cqr 69 drivers/s390/block/dasd_erp.c return cqr; cqr 73 drivers/s390/block/dasd_erp.c dasd_free_erp_request(struct dasd_ccw_req *cqr, struct dasd_device * device) cqr 78 drivers/s390/block/dasd_erp.c dasd_free_chunk(&device->erp_chunks, cqr); cqr 88 drivers/s390/block/dasd_erp.c dasd_default_erp_action(struct dasd_ccw_req *cqr) cqr 92 drivers/s390/block/dasd_erp.c device = cqr->startdev; cqr 95 drivers/s390/block/dasd_erp.c if (cqr->retries > 0) { cqr 98 drivers/s390/block/dasd_erp.c cqr->retries); cqr 99 drivers/s390/block/dasd_erp.c if (!test_bit(DASD_CQR_VERIFY_PATH, &cqr->flags)) cqr 100 drivers/s390/block/dasd_erp.c cqr->lpm = dasd_path_get_opm(device); cqr 101 drivers/s390/block/dasd_erp.c cqr->status = DASD_CQR_FILLED; cqr 105 drivers/s390/block/dasd_erp.c cqr->status = DASD_CQR_FAILED; cqr 106 drivers/s390/block/dasd_erp.c cqr->stopclk = get_tod_clock(); cqr 108 drivers/s390/block/dasd_erp.c return cqr; cqr 125 drivers/s390/block/dasd_erp.c struct dasd_ccw_req *dasd_default_erp_postaction(struct dasd_ccw_req *cqr) cqr 131 drivers/s390/block/dasd_erp.c BUG_ON(cqr->refers == NULL || cqr->function == NULL); cqr 133 drivers/s390/block/dasd_erp.c success = cqr->status == DASD_CQR_DONE; cqr 134 drivers/s390/block/dasd_erp.c startclk = cqr->startclk; cqr 135 drivers/s390/block/dasd_erp.c stopclk = cqr->stopclk; cqr 136 drivers/s390/block/dasd_erp.c startdev = cqr->startdev; cqr 139 drivers/s390/block/dasd_erp.c while (cqr->refers != NULL) { cqr 142 drivers/s390/block/dasd_erp.c refers = cqr->refers; cqr 144 drivers/s390/block/dasd_erp.c list_del(&cqr->blocklist); cqr 146 drivers/s390/block/dasd_erp.c dasd_free_erp_request(cqr, cqr->memdev); cqr 147 drivers/s390/block/dasd_erp.c cqr = refers; cqr 151 drivers/s390/block/dasd_erp.c cqr->startclk = startclk; cqr 152 drivers/s390/block/dasd_erp.c cqr->stopclk = stopclk; cqr 153 drivers/s390/block/dasd_erp.c cqr->startdev = startdev; cqr 155 drivers/s390/block/dasd_erp.c cqr->status = DASD_CQR_DONE; cqr 157 drivers/s390/block/dasd_erp.c cqr->status = DASD_CQR_FAILED; cqr 158 drivers/s390/block/dasd_erp.c cqr->stopclk = get_tod_clock(); cqr 161 drivers/s390/block/dasd_erp.c return cqr; cqr 166 drivers/s390/block/dasd_erp.c dasd_log_sense(struct dasd_ccw_req *cqr, struct irb *irb) cqr 170 drivers/s390/block/dasd_erp.c device = cqr->startdev; cqr 171 drivers/s390/block/dasd_erp.c if (cqr->intrc == -ETIMEDOUT) { cqr 173 drivers/s390/block/dasd_erp.c "A timeout error occurred for cqr %p\n", cqr); cqr 176 drivers/s390/block/dasd_erp.c if (cqr->intrc == -ENOLINK) { cqr 178 drivers/s390/block/dasd_erp.c "A transport error occurred for cqr %p\n", cqr); cqr 183 drivers/s390/block/dasd_erp.c device->discipline->dump_sense(device, cqr, irb); cqr 187 drivers/s390/block/dasd_erp.c dasd_log_sense_dbf(struct dasd_ccw_req *cqr, struct irb *irb) cqr 191 drivers/s390/block/dasd_erp.c device = cqr->startdev; cqr 226 drivers/s390/block/dasd_fba.c dasd_fba_erp_action(struct dasd_ccw_req * cqr) cqr 232 drivers/s390/block/dasd_fba.c dasd_fba_erp_postaction(struct dasd_ccw_req * cqr) cqr 234 drivers/s390/block/dasd_fba.c if (cqr->function == dasd_default_erp_action) cqr 237 drivers/s390/block/dasd_fba.c DBF_DEV_EVENT(DBF_WARNING, cqr->startdev, "unknown ERP action %p", cqr 238 drivers/s390/block/dasd_fba.c cqr->function); cqr 243 drivers/s390/block/dasd_fba.c struct dasd_ccw_req *cqr, cqr 330 drivers/s390/block/dasd_fba.c struct dasd_ccw_req *cqr; cqr 359 drivers/s390/block/dasd_fba.c cqr = dasd_smalloc_request(DASD_FBA_MAGIC, cplength, datasize, memdev, cqr 361 drivers/s390/block/dasd_fba.c if (IS_ERR(cqr)) cqr 362 drivers/s390/block/dasd_fba.c return cqr; cqr 364 drivers/s390/block/dasd_fba.c ccw = cqr->cpaddr; cqr 366 drivers/s390/block/dasd_fba.c define_extent(ccw++, cqr->data, WRITE, blksize, first_rec, count); cqr 367 drivers/s390/block/dasd_fba.c LO_data = cqr->data + sizeof(struct DE_fba_data); cqr 424 drivers/s390/block/dasd_fba.c set_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags); cqr 426 drivers/s390/block/dasd_fba.c cqr->startdev = memdev; cqr 427 drivers/s390/block/dasd_fba.c cqr->memdev = memdev; cqr 428 drivers/s390/block/dasd_fba.c cqr->block = block; cqr 429 drivers/s390/block/dasd_fba.c cqr->expires = memdev->default_expires * HZ; /* default 5 minutes */ cqr 430 drivers/s390/block/dasd_fba.c cqr->retries = memdev->default_retries; cqr 431 drivers/s390/block/dasd_fba.c cqr->buildclk = get_tod_clock(); cqr 432 drivers/s390/block/dasd_fba.c cqr->status = DASD_CQR_FILLED; cqr 434 drivers/s390/block/dasd_fba.c return cqr; cqr 445 drivers/s390/block/dasd_fba.c struct dasd_ccw_req *cqr; cqr 494 drivers/s390/block/dasd_fba.c cqr = dasd_smalloc_request(DASD_FBA_MAGIC, cplength, datasize, memdev, cqr 496 drivers/s390/block/dasd_fba.c if (IS_ERR(cqr)) cqr 497 drivers/s390/block/dasd_fba.c return cqr; cqr 498 drivers/s390/block/dasd_fba.c ccw = cqr->cpaddr; cqr 500 drivers/s390/block/dasd_fba.c define_extent(ccw++, cqr->data, rq_data_dir(req), cqr 503 drivers/s390/block/dasd_fba.c idaws = (unsigned long *) (cqr->data + sizeof(struct DE_fba_data)); cqr 553 drivers/s390/block/dasd_fba.c set_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags); cqr 554 drivers/s390/block/dasd_fba.c cqr->startdev = memdev; cqr 555 drivers/s390/block/dasd_fba.c cqr->memdev = memdev; cqr 556 drivers/s390/block/dasd_fba.c cqr->block = block; cqr 557 drivers/s390/block/dasd_fba.c cqr->expires = memdev->default_expires * HZ; /* default 5 minutes */ cqr 558 drivers/s390/block/dasd_fba.c cqr->retries = memdev->default_retries; cqr 559 drivers/s390/block/dasd_fba.c cqr->buildclk = get_tod_clock(); cqr 560 drivers/s390/block/dasd_fba.c cqr->status = DASD_CQR_FILLED; cqr 561 drivers/s390/block/dasd_fba.c return cqr; cqr 575 drivers/s390/block/dasd_fba.c dasd_fba_free_cp(struct dasd_ccw_req *cqr, struct request *req) cqr 577 drivers/s390/block/dasd_fba.c struct dasd_fba_private *private = cqr->block->base->private; cqr 587 drivers/s390/block/dasd_fba.c blksize = cqr->block->bp_block; cqr 588 drivers/s390/block/dasd_fba.c ccw = cqr->cpaddr; cqr 616 drivers/s390/block/dasd_fba.c status = cqr->status == DASD_CQR_DONE; cqr 617 drivers/s390/block/dasd_fba.c dasd_sfree_request(cqr, cqr->memdev); cqr 621 drivers/s390/block/dasd_fba.c static void dasd_fba_handle_terminated_request(struct dasd_ccw_req *cqr) cqr 623 drivers/s390/block/dasd_fba.c if (cqr->retries < 0) cqr 624 drivers/s390/block/dasd_fba.c cqr->status = DASD_CQR_FAILED; cqr 626 drivers/s390/block/dasd_fba.c cqr->status = DASD_CQR_FILLED; cqr 860 drivers/s390/block/dasd_int.h void dasd_log_sense_dbf(struct dasd_ccw_req *cqr, struct irb *irb); cqr 872 drivers/s390/block/dasd_int.h void dasd_eer_write(struct dasd_device *, struct dasd_ccw_req *cqr, cqr 150 drivers/s390/block/dasd_ioctl.c struct dasd_ccw_req *cqr, *n; cqr 162 drivers/s390/block/dasd_ioctl.c list_for_each_entry_safe(cqr, n, &block->ccw_queue, blocklist) { cqr 163 drivers/s390/block/dasd_ioctl.c if (test_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags) && cqr 164 drivers/s390/block/dasd_ioctl.c cqr->callback_data && cqr 165 drivers/s390/block/dasd_ioctl.c cqr->callback_data != DASD_SLEEPON_START_TAG && cqr 166 drivers/s390/block/dasd_ioctl.c cqr->callback_data != DASD_SLEEPON_END_TAG) { cqr 168 drivers/s390/block/dasd_ioctl.c blk_abort_request(cqr->callback_data);