Lines Matching refs:cqr

98 	struct dasd_ccw_req cqr;  member
108 struct dasd_ccw_req cqr; member
848 struct dasd_ccw_req *cqr, in dasd_eckd_fill_rcd_cqr() argument
862 ccw = cqr->cpaddr; in dasd_eckd_fill_rcd_cqr()
867 cqr->magic = DASD_ECKD_MAGIC; in dasd_eckd_fill_rcd_cqr()
869 cqr->startdev = device; in dasd_eckd_fill_rcd_cqr()
870 cqr->memdev = device; in dasd_eckd_fill_rcd_cqr()
871 cqr->block = NULL; in dasd_eckd_fill_rcd_cqr()
872 cqr->expires = 10*HZ; in dasd_eckd_fill_rcd_cqr()
873 cqr->lpm = lpm; in dasd_eckd_fill_rcd_cqr()
874 cqr->retries = 256; in dasd_eckd_fill_rcd_cqr()
875 cqr->buildclk = get_tod_clock(); in dasd_eckd_fill_rcd_cqr()
876 cqr->status = DASD_CQR_FILLED; in dasd_eckd_fill_rcd_cqr()
877 set_bit(DASD_CQR_VERIFY_PATH, &cqr->flags); in dasd_eckd_fill_rcd_cqr()
886 static void read_conf_cb(struct dasd_ccw_req *cqr, void *data) in read_conf_cb() argument
891 if (cqr->status != DASD_CQR_DONE) { in read_conf_cb()
892 ccw = cqr->cpaddr; in read_conf_cb()
901 dasd_wakeup_cb(cqr, data); in read_conf_cb()
905 struct dasd_ccw_req *cqr, in dasd_eckd_read_conf_immediately() argument
919 dasd_eckd_fill_rcd_cqr(device, cqr, rcd_buffer, lpm); in dasd_eckd_read_conf_immediately()
920 clear_bit(DASD_CQR_FLAGS_USE_ERP, &cqr->flags); in dasd_eckd_read_conf_immediately()
921 set_bit(DASD_CQR_ALLOW_SLOCK, &cqr->flags); in dasd_eckd_read_conf_immediately()
922 cqr->retries = 5; in dasd_eckd_read_conf_immediately()
923 cqr->callback = read_conf_cb; in dasd_eckd_read_conf_immediately()
924 rc = dasd_sleep_on_immediatly(cqr); in dasd_eckd_read_conf_immediately()
935 struct dasd_ccw_req *cqr; in dasd_eckd_read_conf_lpm() local
951 cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1 /* RCD */, in dasd_eckd_read_conf_lpm()
954 if (IS_ERR(cqr)) { in dasd_eckd_read_conf_lpm()
960 dasd_eckd_fill_rcd_cqr(device, cqr, rcd_buf, lpm); in dasd_eckd_read_conf_lpm()
961 cqr->callback = read_conf_cb; in dasd_eckd_read_conf_lpm()
962 ret = dasd_sleep_on(cqr); in dasd_eckd_read_conf_lpm()
966 dasd_sfree_request(cqr, cqr->memdev); in dasd_eckd_read_conf_lpm()
1238 memset(&data->cqr, 0, sizeof(data->cqr)); in rebuild_device_uid()
1239 data->cqr.cpaddr = &data->ccw; in rebuild_device_uid()
1240 rc = dasd_eckd_read_conf_immediately(device, &data->cqr, in rebuild_device_uid()
1302 memset(&data->cqr, 0, sizeof(data->cqr)); in do_path_verification_work()
1303 data->cqr.cpaddr = &data->ccw; in do_path_verification_work()
1304 rc = dasd_eckd_read_conf_immediately(device, &data->cqr, in do_path_verification_work()
1468 struct dasd_ccw_req *cqr; in dasd_eckd_read_features() local
1475 cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1 /* PSF */ + 1 /* RSSD */, in dasd_eckd_read_features()
1479 if (IS_ERR(cqr)) { in dasd_eckd_read_features()
1482 return PTR_ERR(cqr); in dasd_eckd_read_features()
1484 cqr->startdev = device; in dasd_eckd_read_features()
1485 cqr->memdev = device; in dasd_eckd_read_features()
1486 cqr->block = NULL; in dasd_eckd_read_features()
1487 cqr->retries = 256; in dasd_eckd_read_features()
1488 cqr->expires = 10 * HZ; in dasd_eckd_read_features()
1491 prssdp = (struct dasd_psf_prssd_data *) cqr->data; in dasd_eckd_read_features()
1497 ccw = cqr->cpaddr; in dasd_eckd_read_features()
1512 cqr->buildclk = get_tod_clock(); in dasd_eckd_read_features()
1513 cqr->status = DASD_CQR_FILLED; in dasd_eckd_read_features()
1514 rc = dasd_sleep_on(cqr); in dasd_eckd_read_features()
1516 prssdp = (struct dasd_psf_prssd_data *) cqr->data; in dasd_eckd_read_features()
1523 dasd_sfree_request(cqr, cqr->memdev); in dasd_eckd_read_features()
1534 struct dasd_ccw_req *cqr; in dasd_eckd_build_psf_ssc() local
1538 cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1 /* PSF */ , in dasd_eckd_build_psf_ssc()
1542 if (IS_ERR(cqr)) { in dasd_eckd_build_psf_ssc()
1545 return cqr; in dasd_eckd_build_psf_ssc()
1547 psf_ssc_data = (struct dasd_psf_ssc_data *)cqr->data; in dasd_eckd_build_psf_ssc()
1554 ccw = cqr->cpaddr; in dasd_eckd_build_psf_ssc()
1559 cqr->startdev = device; in dasd_eckd_build_psf_ssc()
1560 cqr->memdev = device; in dasd_eckd_build_psf_ssc()
1561 cqr->block = NULL; in dasd_eckd_build_psf_ssc()
1562 cqr->retries = 256; in dasd_eckd_build_psf_ssc()
1563 cqr->expires = 10*HZ; in dasd_eckd_build_psf_ssc()
1564 cqr->buildclk = get_tod_clock(); in dasd_eckd_build_psf_ssc()
1565 cqr->status = DASD_CQR_FILLED; in dasd_eckd_build_psf_ssc()
1566 return cqr; in dasd_eckd_build_psf_ssc()
1578 struct dasd_ccw_req *cqr; in dasd_eckd_psf_ssc() local
1581 cqr = dasd_eckd_build_psf_ssc(device, enable_pav); in dasd_eckd_psf_ssc()
1582 if (IS_ERR(cqr)) in dasd_eckd_psf_ssc()
1583 return PTR_ERR(cqr); in dasd_eckd_psf_ssc()
1589 cqr->flags |= flags; in dasd_eckd_psf_ssc()
1591 rc = dasd_sleep_on(cqr); in dasd_eckd_psf_ssc()
1595 else if (cqr->intrc == -EAGAIN) in dasd_eckd_psf_ssc()
1598 dasd_sfree_request(cqr, cqr->memdev); in dasd_eckd_psf_ssc()
1869 struct dasd_ccw_req *cqr; in dasd_eckd_analysis_ccw() local
1878 cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, cplength, datasize, device); in dasd_eckd_analysis_ccw()
1879 if (IS_ERR(cqr)) in dasd_eckd_analysis_ccw()
1880 return cqr; in dasd_eckd_analysis_ccw()
1881 ccw = cqr->cpaddr; in dasd_eckd_analysis_ccw()
1883 define_extent(ccw++, cqr->data, 0, 2, in dasd_eckd_analysis_ccw()
1885 LO_data = cqr->data + sizeof(struct DE_eckd_data); in dasd_eckd_analysis_ccw()
1913 cqr->block = NULL; in dasd_eckd_analysis_ccw()
1914 cqr->startdev = device; in dasd_eckd_analysis_ccw()
1915 cqr->memdev = device; in dasd_eckd_analysis_ccw()
1916 cqr->retries = 255; in dasd_eckd_analysis_ccw()
1917 cqr->buildclk = get_tod_clock(); in dasd_eckd_analysis_ccw()
1918 cqr->status = DASD_CQR_FILLED; in dasd_eckd_analysis_ccw()
1919 return cqr; in dasd_eckd_analysis_ccw()
2394 struct dasd_ccw_req *cqr, *n; in dasd_eckd_format_device() local
2438 cqr = dasd_eckd_build_format(base, fdata, enable_pav); in dasd_eckd_format_device()
2439 list_add(&cqr->blocklist, &format_queue); in dasd_eckd_format_device()
2456 cqr = dasd_eckd_build_format(base, fdata, enable_pav); in dasd_eckd_format_device()
2457 if (IS_ERR(cqr)) { in dasd_eckd_format_device()
2458 if (PTR_ERR(cqr) == -ENOMEM) { in dasd_eckd_format_device()
2467 return PTR_ERR(cqr); in dasd_eckd_format_device()
2469 list_add(&cqr->blocklist, &format_queue); in dasd_eckd_format_device()
2478 list_for_each_entry_safe(cqr, n, &format_queue, blocklist) { in dasd_eckd_format_device()
2479 device = cqr->startdev; in dasd_eckd_format_device()
2481 if (cqr->status == DASD_CQR_FAILED) in dasd_eckd_format_device()
2483 list_del_init(&cqr->blocklist); in dasd_eckd_format_device()
2484 dasd_sfree_request(cqr, device); in dasd_eckd_format_device()
2501 static void dasd_eckd_handle_terminated_request(struct dasd_ccw_req *cqr) in dasd_eckd_handle_terminated_request() argument
2503 if (cqr->retries < 0) { in dasd_eckd_handle_terminated_request()
2504 cqr->status = DASD_CQR_FAILED; in dasd_eckd_handle_terminated_request()
2507 cqr->status = DASD_CQR_FILLED; in dasd_eckd_handle_terminated_request()
2508 if (cqr->block && (cqr->startdev != cqr->block->base)) { in dasd_eckd_handle_terminated_request()
2509 dasd_eckd_reset_ccw_to_base_io(cqr); in dasd_eckd_handle_terminated_request()
2510 cqr->startdev = cqr->block->base; in dasd_eckd_handle_terminated_request()
2511 cqr->lpm = cqr->block->base->path_data.opm; in dasd_eckd_handle_terminated_request()
2516 dasd_eckd_erp_action(struct dasd_ccw_req * cqr) in dasd_eckd_erp_action() argument
2518 struct dasd_device *device = (struct dasd_device *) cqr->startdev; in dasd_eckd_erp_action()
2535 dasd_eckd_erp_postaction(struct dasd_ccw_req * cqr) in dasd_eckd_erp_postaction() argument
2541 struct dasd_ccw_req *cqr, in dasd_eckd_check_for_device_change() argument
2587 if (!cqr && !(sense[27] & DASD_SENSE_BIT_0) && in dasd_eckd_check_for_device_change()
2624 struct dasd_ccw_req *cqr; in dasd_eckd_build_cp_cmd_single() local
2685 cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, cplength, datasize, in dasd_eckd_build_cp_cmd_single()
2687 if (IS_ERR(cqr)) in dasd_eckd_build_cp_cmd_single()
2688 return cqr; in dasd_eckd_build_cp_cmd_single()
2689 ccw = cqr->cpaddr; in dasd_eckd_build_cp_cmd_single()
2692 if (prefix(ccw++, cqr->data, first_trk, in dasd_eckd_build_cp_cmd_single()
2697 dasd_sfree_request(cqr, startdev); in dasd_eckd_build_cp_cmd_single()
2700 idaws = (unsigned long *) (cqr->data + in dasd_eckd_build_cp_cmd_single()
2703 if (define_extent(ccw++, cqr->data, first_trk, in dasd_eckd_build_cp_cmd_single()
2708 dasd_sfree_request(cqr, startdev); in dasd_eckd_build_cp_cmd_single()
2711 idaws = (unsigned long *) (cqr->data + in dasd_eckd_build_cp_cmd_single()
2780 set_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags); in dasd_eckd_build_cp_cmd_single()
2781 cqr->startdev = startdev; in dasd_eckd_build_cp_cmd_single()
2782 cqr->memdev = startdev; in dasd_eckd_build_cp_cmd_single()
2783 cqr->block = block; in dasd_eckd_build_cp_cmd_single()
2784 cqr->expires = startdev->default_expires * HZ; /* default 5 minutes */ in dasd_eckd_build_cp_cmd_single()
2785 cqr->lpm = startdev->path_data.ppm; in dasd_eckd_build_cp_cmd_single()
2786 cqr->retries = startdev->default_retries; in dasd_eckd_build_cp_cmd_single()
2787 cqr->buildclk = get_tod_clock(); in dasd_eckd_build_cp_cmd_single()
2788 cqr->status = DASD_CQR_FILLED; in dasd_eckd_build_cp_cmd_single()
2789 return cqr; in dasd_eckd_build_cp_cmd_single()
2806 struct dasd_ccw_req *cqr; in dasd_eckd_build_cp_cmd_track() local
2848 cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, cplength, datasize, in dasd_eckd_build_cp_cmd_track()
2850 if (IS_ERR(cqr)) in dasd_eckd_build_cp_cmd_track()
2851 return cqr; in dasd_eckd_build_cp_cmd_track()
2852 ccw = cqr->cpaddr; in dasd_eckd_build_cp_cmd_track()
2860 if (prefix_LRE(ccw++, cqr->data, first_trk, in dasd_eckd_build_cp_cmd_track()
2868 dasd_sfree_request(cqr, startdev); in dasd_eckd_build_cp_cmd_track()
2879 idaws = (unsigned long *) (cqr->data + sizeof(struct PFX_eckd_data)); in dasd_eckd_build_cp_cmd_track()
2917 dasd_sfree_request(cqr, startdev); in dasd_eckd_build_cp_cmd_track()
2923 dasd_sfree_request(cqr, startdev); in dasd_eckd_build_cp_cmd_track()
2955 set_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags); in dasd_eckd_build_cp_cmd_track()
2956 cqr->startdev = startdev; in dasd_eckd_build_cp_cmd_track()
2957 cqr->memdev = startdev; in dasd_eckd_build_cp_cmd_track()
2958 cqr->block = block; in dasd_eckd_build_cp_cmd_track()
2959 cqr->expires = startdev->default_expires * HZ; /* default 5 minutes */ in dasd_eckd_build_cp_cmd_track()
2960 cqr->lpm = startdev->path_data.ppm; in dasd_eckd_build_cp_cmd_track()
2961 cqr->retries = startdev->default_retries; in dasd_eckd_build_cp_cmd_track()
2962 cqr->buildclk = get_tod_clock(); in dasd_eckd_build_cp_cmd_track()
2963 cqr->status = DASD_CQR_FILLED; in dasd_eckd_build_cp_cmd_track()
2964 return cqr; in dasd_eckd_build_cp_cmd_track()
3111 struct dasd_ccw_req *cqr; in dasd_eckd_build_cp_tpm_track() local
3157 cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 0, itcw_size, startdev); in dasd_eckd_build_cp_tpm_track()
3158 if (IS_ERR(cqr)) in dasd_eckd_build_cp_tpm_track()
3159 return cqr; in dasd_eckd_build_cp_tpm_track()
3168 itcw = itcw_init(cqr->data, itcw_size, itcw_op, 0, ctidaw, 0); in dasd_eckd_build_cp_tpm_track()
3173 cqr->cpaddr = itcw_get_tcw(itcw); in dasd_eckd_build_cp_tpm_track()
3247 set_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags); in dasd_eckd_build_cp_tpm_track()
3248 cqr->cpmode = 1; in dasd_eckd_build_cp_tpm_track()
3249 cqr->startdev = startdev; in dasd_eckd_build_cp_tpm_track()
3250 cqr->memdev = startdev; in dasd_eckd_build_cp_tpm_track()
3251 cqr->block = block; in dasd_eckd_build_cp_tpm_track()
3252 cqr->expires = startdev->default_expires * HZ; /* default 5 minutes */ in dasd_eckd_build_cp_tpm_track()
3253 cqr->lpm = startdev->path_data.ppm; in dasd_eckd_build_cp_tpm_track()
3254 cqr->retries = startdev->default_retries; in dasd_eckd_build_cp_tpm_track()
3255 cqr->buildclk = get_tod_clock(); in dasd_eckd_build_cp_tpm_track()
3256 cqr->status = DASD_CQR_FILLED; in dasd_eckd_build_cp_tpm_track()
3257 return cqr; in dasd_eckd_build_cp_tpm_track()
3259 dasd_sfree_request(cqr, startdev); in dasd_eckd_build_cp_tpm_track()
3278 struct dasd_ccw_req *cqr; in dasd_eckd_build_cp() local
3309 cqr = NULL; in dasd_eckd_build_cp()
3314 cqr = dasd_eckd_build_cp_tpm_track(startdev, block, req, in dasd_eckd_build_cp()
3319 if (IS_ERR(cqr) && (PTR_ERR(cqr) != -EAGAIN) && in dasd_eckd_build_cp()
3320 (PTR_ERR(cqr) != -ENOMEM)) in dasd_eckd_build_cp()
3321 cqr = NULL; in dasd_eckd_build_cp()
3325 cqr = dasd_eckd_build_cp_cmd_track(startdev, block, req, in dasd_eckd_build_cp()
3330 if (IS_ERR(cqr) && (PTR_ERR(cqr) != -EAGAIN) && in dasd_eckd_build_cp()
3331 (PTR_ERR(cqr) != -ENOMEM)) in dasd_eckd_build_cp()
3332 cqr = NULL; in dasd_eckd_build_cp()
3334 if (!cqr) in dasd_eckd_build_cp()
3335 cqr = dasd_eckd_build_cp_cmd_single(startdev, block, req, in dasd_eckd_build_cp()
3340 return cqr; in dasd_eckd_build_cp()
3349 struct dasd_ccw_req *cqr; in dasd_raw_build_cp() local
3379 cqr = ERR_PTR(-EINVAL); in dasd_raw_build_cp()
3394 cqr = ERR_PTR(-EINVAL); in dasd_raw_build_cp()
3418 cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, cplength, in dasd_raw_build_cp()
3420 if (IS_ERR(cqr)) in dasd_raw_build_cp()
3422 ccw = cqr->cpaddr; in dasd_raw_build_cp()
3424 if (prefix_LRE(ccw++, cqr->data, first_trk, last_trk, cmd, in dasd_raw_build_cp()
3430 dasd_sfree_request(cqr, startdev); in dasd_raw_build_cp()
3431 cqr = ERR_PTR(-EAGAIN); in dasd_raw_build_cp()
3435 idaws = (unsigned long *)(cqr->data + pfx_datasize); in dasd_raw_build_cp()
3475 set_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags); in dasd_raw_build_cp()
3476 cqr->startdev = startdev; in dasd_raw_build_cp()
3477 cqr->memdev = startdev; in dasd_raw_build_cp()
3478 cqr->block = block; in dasd_raw_build_cp()
3479 cqr->expires = startdev->default_expires * HZ; in dasd_raw_build_cp()
3480 cqr->lpm = startdev->path_data.ppm; in dasd_raw_build_cp()
3481 cqr->retries = startdev->default_retries; in dasd_raw_build_cp()
3482 cqr->buildclk = get_tod_clock(); in dasd_raw_build_cp()
3483 cqr->status = DASD_CQR_FILLED; in dasd_raw_build_cp()
3485 if (IS_ERR(cqr) && PTR_ERR(cqr) != -EAGAIN) in dasd_raw_build_cp()
3486 cqr = NULL; in dasd_raw_build_cp()
3488 return cqr; in dasd_raw_build_cp()
3493 dasd_eckd_free_cp(struct dasd_ccw_req *cqr, struct request *req) in dasd_eckd_free_cp() argument
3506 private = (struct dasd_eckd_private *) cqr->block->base->private; in dasd_eckd_free_cp()
3507 blksize = cqr->block->bp_block; in dasd_eckd_free_cp()
3509 recid = blk_rq_pos(req) >> cqr->block->s2b_shift; in dasd_eckd_free_cp()
3510 ccw = cqr->cpaddr; in dasd_eckd_free_cp()
3539 status = cqr->status == DASD_CQR_DONE; in dasd_eckd_free_cp()
3540 dasd_sfree_request(cqr, cqr->memdev); in dasd_eckd_free_cp()
3551 void dasd_eckd_reset_ccw_to_base_io(struct dasd_ccw_req *cqr) in dasd_eckd_reset_ccw_to_base_io() argument
3559 if (cqr->cpmode == 1) { in dasd_eckd_reset_ccw_to_base_io()
3560 tcw = cqr->cpaddr; in dasd_eckd_reset_ccw_to_base_io()
3567 ccw = cqr->cpaddr; in dasd_eckd_reset_ccw_to_base_io()
3568 pfxdata = cqr->data; in dasd_eckd_reset_ccw_to_base_io()
3585 struct dasd_ccw_req *cqr; in dasd_eckd_build_alias_cp() local
3597 cqr = dasd_raw_build_cp(startdev, block, req); in dasd_eckd_build_alias_cp()
3599 cqr = dasd_eckd_build_cp(startdev, block, req); in dasd_eckd_build_alias_cp()
3600 if (IS_ERR(cqr)) in dasd_eckd_build_alias_cp()
3603 return cqr; in dasd_eckd_build_alias_cp()
3606 static int dasd_eckd_free_alias_cp(struct dasd_ccw_req *cqr, in dasd_eckd_free_alias_cp() argument
3612 spin_lock_irqsave(get_ccwdev_lock(cqr->memdev->cdev), flags); in dasd_eckd_free_alias_cp()
3613 private = (struct dasd_eckd_private *) cqr->memdev->private; in dasd_eckd_free_alias_cp()
3615 spin_unlock_irqrestore(get_ccwdev_lock(cqr->memdev->cdev), flags); in dasd_eckd_free_alias_cp()
3616 return dasd_eckd_free_cp(cqr, req); in dasd_eckd_free_alias_cp()
3651 struct dasd_ccw_req *cqr; in dasd_eckd_release() local
3660 cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1, 32, device); in dasd_eckd_release()
3661 if (IS_ERR(cqr)) { in dasd_eckd_release()
3664 cqr = &dasd_reserve_req->cqr; in dasd_eckd_release()
3665 memset(cqr, 0, sizeof(*cqr)); in dasd_eckd_release()
3668 cqr->cpaddr = &dasd_reserve_req->ccw; in dasd_eckd_release()
3669 cqr->data = &dasd_reserve_req->data; in dasd_eckd_release()
3670 cqr->magic = DASD_ECKD_MAGIC; in dasd_eckd_release()
3672 ccw = cqr->cpaddr; in dasd_eckd_release()
3676 ccw->cda = (__u32)(addr_t) cqr->data; in dasd_eckd_release()
3677 cqr->startdev = device; in dasd_eckd_release()
3678 cqr->memdev = device; in dasd_eckd_release()
3679 clear_bit(DASD_CQR_FLAGS_USE_ERP, &cqr->flags); in dasd_eckd_release()
3680 set_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags); in dasd_eckd_release()
3681 cqr->retries = 2; /* set retry counter to enable basic ERP */ in dasd_eckd_release()
3682 cqr->expires = 2 * HZ; in dasd_eckd_release()
3683 cqr->buildclk = get_tod_clock(); in dasd_eckd_release()
3684 cqr->status = DASD_CQR_FILLED; in dasd_eckd_release()
3686 rc = dasd_sleep_on_immediatly(cqr); in dasd_eckd_release()
3693 dasd_sfree_request(cqr, cqr->memdev); in dasd_eckd_release()
3706 struct dasd_ccw_req *cqr; in dasd_eckd_reserve() local
3715 cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1, 32, device); in dasd_eckd_reserve()
3716 if (IS_ERR(cqr)) { in dasd_eckd_reserve()
3719 cqr = &dasd_reserve_req->cqr; in dasd_eckd_reserve()
3720 memset(cqr, 0, sizeof(*cqr)); in dasd_eckd_reserve()
3723 cqr->cpaddr = &dasd_reserve_req->ccw; in dasd_eckd_reserve()
3724 cqr->data = &dasd_reserve_req->data; in dasd_eckd_reserve()
3725 cqr->magic = DASD_ECKD_MAGIC; in dasd_eckd_reserve()
3727 ccw = cqr->cpaddr; in dasd_eckd_reserve()
3731 ccw->cda = (__u32)(addr_t) cqr->data; in dasd_eckd_reserve()
3732 cqr->startdev = device; in dasd_eckd_reserve()
3733 cqr->memdev = device; in dasd_eckd_reserve()
3734 clear_bit(DASD_CQR_FLAGS_USE_ERP, &cqr->flags); in dasd_eckd_reserve()
3735 set_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags); in dasd_eckd_reserve()
3736 cqr->retries = 2; /* set retry counter to enable basic ERP */ in dasd_eckd_reserve()
3737 cqr->expires = 2 * HZ; in dasd_eckd_reserve()
3738 cqr->buildclk = get_tod_clock(); in dasd_eckd_reserve()
3739 cqr->status = DASD_CQR_FILLED; in dasd_eckd_reserve()
3741 rc = dasd_sleep_on_immediatly(cqr); in dasd_eckd_reserve()
3748 dasd_sfree_request(cqr, cqr->memdev); in dasd_eckd_reserve()
3760 struct dasd_ccw_req *cqr; in dasd_eckd_steal_lock() local
3769 cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1, 32, device); in dasd_eckd_steal_lock()
3770 if (IS_ERR(cqr)) { in dasd_eckd_steal_lock()
3773 cqr = &dasd_reserve_req->cqr; in dasd_eckd_steal_lock()
3774 memset(cqr, 0, sizeof(*cqr)); in dasd_eckd_steal_lock()
3777 cqr->cpaddr = &dasd_reserve_req->ccw; in dasd_eckd_steal_lock()
3778 cqr->data = &dasd_reserve_req->data; in dasd_eckd_steal_lock()
3779 cqr->magic = DASD_ECKD_MAGIC; in dasd_eckd_steal_lock()
3781 ccw = cqr->cpaddr; in dasd_eckd_steal_lock()
3785 ccw->cda = (__u32)(addr_t) cqr->data; in dasd_eckd_steal_lock()
3786 cqr->startdev = device; in dasd_eckd_steal_lock()
3787 cqr->memdev = device; in dasd_eckd_steal_lock()
3788 clear_bit(DASD_CQR_FLAGS_USE_ERP, &cqr->flags); in dasd_eckd_steal_lock()
3789 set_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags); in dasd_eckd_steal_lock()
3790 cqr->retries = 2; /* set retry counter to enable basic ERP */ in dasd_eckd_steal_lock()
3791 cqr->expires = 2 * HZ; in dasd_eckd_steal_lock()
3792 cqr->buildclk = get_tod_clock(); in dasd_eckd_steal_lock()
3793 cqr->status = DASD_CQR_FILLED; in dasd_eckd_steal_lock()
3795 rc = dasd_sleep_on_immediatly(cqr); in dasd_eckd_steal_lock()
3802 dasd_sfree_request(cqr, cqr->memdev); in dasd_eckd_steal_lock()
3815 struct dasd_ccw_req *cqr; in dasd_eckd_snid() local
3828 cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1, in dasd_eckd_snid()
3830 if (IS_ERR(cqr)) { in dasd_eckd_snid()
3833 cqr = &dasd_reserve_req->cqr; in dasd_eckd_snid()
3834 memset(cqr, 0, sizeof(*cqr)); in dasd_eckd_snid()
3837 cqr->cpaddr = &dasd_reserve_req->ccw; in dasd_eckd_snid()
3838 cqr->data = &dasd_reserve_req->data; in dasd_eckd_snid()
3839 cqr->magic = DASD_ECKD_MAGIC; in dasd_eckd_snid()
3841 ccw = cqr->cpaddr; in dasd_eckd_snid()
3845 ccw->cda = (__u32)(addr_t) cqr->data; in dasd_eckd_snid()
3846 cqr->startdev = device; in dasd_eckd_snid()
3847 cqr->memdev = device; in dasd_eckd_snid()
3848 clear_bit(DASD_CQR_FLAGS_USE_ERP, &cqr->flags); in dasd_eckd_snid()
3849 set_bit(DASD_CQR_FLAGS_FAILFAST, &cqr->flags); in dasd_eckd_snid()
3850 set_bit(DASD_CQR_ALLOW_SLOCK, &cqr->flags); in dasd_eckd_snid()
3851 cqr->retries = 5; in dasd_eckd_snid()
3852 cqr->expires = 10 * HZ; in dasd_eckd_snid()
3853 cqr->buildclk = get_tod_clock(); in dasd_eckd_snid()
3854 cqr->status = DASD_CQR_FILLED; in dasd_eckd_snid()
3855 cqr->lpm = usrparm.path_mask; in dasd_eckd_snid()
3857 rc = dasd_sleep_on_immediatly(cqr); in dasd_eckd_snid()
3859 if (!rc && usrparm.path_mask && (cqr->lpm != usrparm.path_mask)) in dasd_eckd_snid()
3862 usrparm.data = *((struct dasd_snid_data *)cqr->data); in dasd_eckd_snid()
3870 dasd_sfree_request(cqr, cqr->memdev); in dasd_eckd_snid()
3882 struct dasd_ccw_req *cqr; in dasd_eckd_performance() local
3886 cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1 /* PSF */ + 1 /* RSSD */, in dasd_eckd_performance()
3890 if (IS_ERR(cqr)) { in dasd_eckd_performance()
3893 return PTR_ERR(cqr); in dasd_eckd_performance()
3895 cqr->startdev = device; in dasd_eckd_performance()
3896 cqr->memdev = device; in dasd_eckd_performance()
3897 cqr->retries = 0; in dasd_eckd_performance()
3898 clear_bit(DASD_CQR_FLAGS_USE_ERP, &cqr->flags); in dasd_eckd_performance()
3899 cqr->expires = 10 * HZ; in dasd_eckd_performance()
3902 prssdp = (struct dasd_psf_prssd_data *) cqr->data; in dasd_eckd_performance()
3908 ccw = cqr->cpaddr; in dasd_eckd_performance()
3923 cqr->buildclk = get_tod_clock(); in dasd_eckd_performance()
3924 cqr->status = DASD_CQR_FILLED; in dasd_eckd_performance()
3925 rc = dasd_sleep_on(cqr); in dasd_eckd_performance()
3927 prssdp = (struct dasd_psf_prssd_data *) cqr->data; in dasd_eckd_performance()
3933 dasd_sfree_request(cqr, cqr->memdev); in dasd_eckd_performance()
3996 struct dasd_ccw_req *cqr; in dasd_symm_io() local
4037 cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 2 , 0, device); in dasd_symm_io()
4038 if (IS_ERR(cqr)) { in dasd_symm_io()
4041 rc = PTR_ERR(cqr); in dasd_symm_io()
4045 cqr->startdev = device; in dasd_symm_io()
4046 cqr->memdev = device; in dasd_symm_io()
4047 cqr->retries = 3; in dasd_symm_io()
4048 cqr->expires = 10 * HZ; in dasd_symm_io()
4049 cqr->buildclk = get_tod_clock(); in dasd_symm_io()
4050 cqr->status = DASD_CQR_FILLED; in dasd_symm_io()
4053 ccw = cqr->cpaddr; in dasd_symm_io()
4069 rc = dasd_sleep_on(cqr); in dasd_symm_io()
4080 dasd_sfree_request(cqr, cqr->memdev); in dasd_symm_io()
4560 struct dasd_ccw_req *cqr; in dasd_eckd_read_message_buffer() local
4565 cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1 /* PSF */ + 1 /* RSSD */, in dasd_eckd_read_message_buffer()
4569 if (IS_ERR(cqr)) { in dasd_eckd_read_message_buffer()
4572 return PTR_ERR(cqr); in dasd_eckd_read_message_buffer()
4575 cqr->startdev = device; in dasd_eckd_read_message_buffer()
4576 cqr->memdev = device; in dasd_eckd_read_message_buffer()
4577 cqr->block = NULL; in dasd_eckd_read_message_buffer()
4578 cqr->expires = 10 * HZ; in dasd_eckd_read_message_buffer()
4579 set_bit(DASD_CQR_VERIFY_PATH, &cqr->flags); in dasd_eckd_read_message_buffer()
4583 clear_bit(DASD_CQR_FLAGS_USE_ERP, &cqr->flags); in dasd_eckd_read_message_buffer()
4584 cqr->retries = 256; in dasd_eckd_read_message_buffer()
4587 prssdp = (struct dasd_psf_prssd_data *) cqr->data; in dasd_eckd_read_message_buffer()
4593 ccw = cqr->cpaddr; in dasd_eckd_read_message_buffer()
4610 cqr->buildclk = get_tod_clock(); in dasd_eckd_read_message_buffer()
4611 cqr->status = DASD_CQR_FILLED; in dasd_eckd_read_message_buffer()
4612 rc = dasd_sleep_on_immediatly(cqr); in dasd_eckd_read_message_buffer()
4614 prssdp = (struct dasd_psf_prssd_data *) cqr->data; in dasd_eckd_read_message_buffer()
4623 dasd_sfree_request(cqr, cqr->memdev); in dasd_eckd_read_message_buffer()
4637 struct dasd_ccw_req *cqr; in dasd_eckd_psf_cuir_response() local
4641 cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1 /* PSF */ , in dasd_eckd_psf_cuir_response()
4645 if (IS_ERR(cqr)) { in dasd_eckd_psf_cuir_response()
4648 return PTR_ERR(cqr); in dasd_eckd_psf_cuir_response()
4651 psf_cuir = (struct dasd_psf_cuir_response *)cqr->data; in dasd_eckd_psf_cuir_response()
4659 ccw = cqr->cpaddr; in dasd_eckd_psf_cuir_response()
4665 cqr->startdev = device; in dasd_eckd_psf_cuir_response()
4666 cqr->memdev = device; in dasd_eckd_psf_cuir_response()
4667 cqr->block = NULL; in dasd_eckd_psf_cuir_response()
4668 cqr->retries = 256; in dasd_eckd_psf_cuir_response()
4669 cqr->expires = 10*HZ; in dasd_eckd_psf_cuir_response()
4670 cqr->buildclk = get_tod_clock(); in dasd_eckd_psf_cuir_response()
4671 cqr->status = DASD_CQR_FILLED; in dasd_eckd_psf_cuir_response()
4672 set_bit(DASD_CQR_VERIFY_PATH, &cqr->flags); in dasd_eckd_psf_cuir_response()
4674 rc = dasd_sleep_on(cqr); in dasd_eckd_psf_cuir_response()
4676 dasd_sfree_request(cqr, cqr->memdev); in dasd_eckd_psf_cuir_response()