Lines Matching defs:cqr
43 * the status of the original cqr / erp to the given (final) status
50 * cqr original cqr
55 struct dasd_ccw_req *cqr = erp->refers;
58 cqr->status = final_status;
59 return cqr;
110 /* (this enables easier enqueing of the cqr) */
184 * Setup cqr to do the Diagnostic Control (DCTL) command with an
290 * Use a timer (20 seconds) to retry the cqr if the interrupt is still
309 /* interrupt (this enables easier enqueing of the cqr) */
1091 /* (this enables easier enqueing of the cqr) */
1309 * erp pointer to original (failed) cqr.
1440 struct dasd_ccw_req *cqr = erp->refers;
1443 if (cqr->block &&
1444 (cqr->block->base != cqr->startdev)) {
1450 if (!test_bit(DASD_FLAG_OFFLINE, &cqr->startdev->flags) && sense
1458 dasd_alias_remove_device(cqr->startdev);
1461 dasd_reload_device(cqr->startdev);
1464 if (cqr->startdev->features & DASD_FEATURE_ERPLOG) {
1465 DBF_DEV_EVENT(DBF_ERR, cqr->startdev,
1467 " recover on base device %s", cqr,
1468 dev_name(&cqr->block->base->cdev->dev));
1470 dasd_eckd_reset_ccw_to_base_io(cqr);
1471 erp->startdev = cqr->block->base;
1613 struct dasd_ccw_req *cqr;
1625 /* determine the original cqr */
1626 cqr = default_erp;
1628 while (cqr->refers != NULL) {
1629 cqr = cqr->refers;
1632 if (scsw_is_tm(&cqr->irb.scsw)) {
1660 erp = dasd_alloc_erp_request(cqr->magic,
1674 oldccw = cqr->cpaddr;
1676 PFX_data = cqr->data;
1680 memcpy(DE_data, cqr->data, sizeof(struct DE_eckd_data));
1772 struct dasd_ccw_req *cqr;
1781 /* determine the original cqr */
1782 cqr = previous_erp;
1784 while (cqr->refers != NULL) {
1785 cqr = cqr->refers;
1788 if (scsw_is_tm(&cqr->irb.scsw)) {
2363 * the given cqr (or erp).
2364 * For a command mode cqr the erp is initialized as an default erp
2371 * cqr head of the current ERP-chain (or single cqr if
2376 static struct dasd_ccw_req *dasd_3990_erp_add_erp(struct dasd_ccw_req *cqr)
2379 struct dasd_device *device = cqr->startdev;
2386 if (cqr->cpmode == 1) {
2396 erp = dasd_alloc_erp_request(cqr->magic,
2399 if (cqr->retries <= 0) {
2402 cqr->status = DASD_CQR_FAILED;
2403 cqr->stopclk = get_tod_clock();
2408 cqr->retries);
2414 ccw = cqr->cpaddr;
2415 if (cqr->cpmode == 1) {
2421 *tcw = *((struct tcw *)cqr->cpaddr);
2425 erp->cpaddr = cqr->cpaddr;
2433 ccw->cda = (__u32)virt_to_phys(cqr->cpaddr);
2436 erp->flags = cqr->flags;
2438 erp->refers = cqr;
2441 erp->block = cqr->block;
2442 erp->magic = cqr->magic;
2443 erp->expires = cqr->expires;
2460 * cqr head of the current ERP-chain (or single cqr if
2467 dasd_3990_erp_additional_erp(struct dasd_ccw_req * cqr)
2473 erp = dasd_3990_erp_add_erp(cqr);
2479 if (erp != cqr) {
2492 * Check if the device status of the given cqr is the same.
2499 * cqr1 first cqr, which will be compared with the
2500 * cqr2 second cqr.
2546 * quick exit if current cqr is not an ERP (cqr->refers=NULL)
2549 * cqr failed cqr (either original cqr or already an erp)
2557 dasd_3990_erp_in_erp(struct dasd_ccw_req *cqr)
2560 struct dasd_ccw_req *erp_head = cqr, /* save erp chain head */
2564 if (cqr->refers == NULL) { /* return if not in erp */
2568 /* check the erp/cqr chain for current error */
2570 match = dasd_3990_erp_error_match(erp_head, cqr->refers);
2571 erp_match = cqr; /* save possible matching erp */
2572 cqr = cqr->refers; /* check next erp/cqr in queue */
2574 } while ((cqr->refers != NULL) && (!match));
2767 * cqr failed cqr (either original cqr or already an erp)
2772 * - either a ptr to an additional ERP cqr or
2773 * - the original given cqr (which's status might
2777 dasd_3990_erp_action(struct dasd_ccw_req * cqr)
2780 struct dasd_device *device = cqr->startdev;
2787 for (temp_erp = cqr;
2797 /* double-check if current erp/cqr was successful */
2798 if ((scsw_cstat(&cqr->irb.scsw) == 0x00) &&
2799 (scsw_dstat(&cqr->irb.scsw) ==
2804 " - NO ERP necessary", cqr);
2806 cqr->status = DASD_CQR_DONE;
2808 return cqr;
2812 erp = dasd_3990_erp_in_erp(cqr);
2816 erp = dasd_3990_erp_additional_erp(cqr);
2821 erp = dasd_3990_erp_handle_match_erp(cqr, erp);
2830 if (test_bit(DASD_CQR_VERIFY_PATH, &erp->flags) && cqr->lpm) {
2831 erp->lpm = cqr->lpm;
2850 cqr->status = DASD_CQR_IN_ERP;
2851 /* add erp request before the cqr */
2852 list_add_tail(&erp->blocklist, &cqr->blocklist);