Lines Matching refs:data
88 char data[32];
95 char data[40];
214 * calculate failing track from sense data depending if
228 "ESE error no sense data\n");
233 "ESE error no valid track data\n");
252 static int set_timestamp(struct ccw1 *ccw, struct DE_eckd_data *data,
258 rc = get_phys_clock(&data->ep_sys_time);
268 data->ga_extended |= 0x08; /* switch on 'Time Stamp Valid' */
269 data->ga_extended |= 0x02; /* switch on 'Extended Parameter' */
280 define_extent(struct ccw1 *ccw, struct DE_eckd_data *data, unsigned int trk,
293 ccw->cda = (__u32)virt_to_phys(data);
296 memset(data, 0, sizeof(struct DE_eckd_data));
306 data->mask.perm = 0x1;
307 data->attributes.operation = private->attrib.operation;
310 data->mask.perm = 0x1;
311 data->attributes.operation = DASD_BYPASS_CACHE;
315 data->mask.perm = 0x1;
316 data->attributes.operation = private->attrib.operation;
317 data->blk_size = 0;
323 data->mask.perm = 0x02;
324 data->attributes.operation = private->attrib.operation;
325 rc = set_timestamp(ccw, data, device);
329 data->attributes.operation = DASD_BYPASS_CACHE;
330 rc = set_timestamp(ccw, data, device);
335 data->mask.perm = 0x3;
336 data->mask.auth = 0x1;
337 data->attributes.operation = DASD_BYPASS_CACHE;
338 rc = set_timestamp(ccw, data, device);
341 data->mask.perm = 0x03;
342 data->attributes.operation = private->attrib.operation;
343 data->blk_size = 0;
346 data->mask.perm = 0x02;
347 data->attributes.operation = private->attrib.operation;
348 data->blk_size = blksize;
349 rc = set_timestamp(ccw, data, device);
357 data->attributes.mode = 0x3; /* ECKD */
363 data->ga_extended |= 0x40; /* Regular Data Format Mode */
372 if (data->attributes.operation == DASD_SEQ_PRESTAGE ||
373 data->attributes.operation == DASD_SEQ_ACCESS) {
381 set_ch_t(&data->beg_ext, begcyl, beghead);
382 set_ch_t(&data->end_ext, endcyl, endhead);
387 static void locate_record_ext(struct ccw1 *ccw, struct LRE_eckd_data *data,
403 ccw->cda = (__u32)virt_to_phys(data);
406 memset(data, 0, sizeof(*data));
421 data->sector = sector;
426 data->count = count;
429 data->operation.orientation = 0x3;
430 data->operation.operation = 0x03;
433 data->operation.orientation = 0x3;
434 data->operation.operation = 0x16;
437 data->operation.orientation = 0x1;
438 data->operation.operation = 0x03;
439 data->count++;
442 data->operation.orientation = 0x3;
443 data->operation.operation = 0x16;
444 data->count++;
450 data->auxiliary.length_valid = 0x1;
451 data->length = reclen;
452 data->operation.operation = 0x01;
456 data->auxiliary.length_valid = 0x1;
457 data->length = reclen;
458 data->operation.operation = 0x03;
461 data->operation.orientation = 0x0;
462 data->operation.operation = 0x3F;
463 data->extended_operation = 0x11;
464 data->length = 0;
465 data->extended_parameter_length = 0x02;
466 if (data->count > 8) {
467 data->extended_parameter[0] = 0xFF;
468 data->extended_parameter[1] = 0xFF;
469 data->extended_parameter[1] <<= (16 - count);
471 data->extended_parameter[0] = 0xFF;
472 data->extended_parameter[0] <<= (8 - count);
473 data->extended_parameter[1] = 0x00;
475 data->sector = 0xFF;
478 data->auxiliary.length_valid = 0x1;
479 data->length = reclen; /* not tlf, as one might think */
480 data->operation.operation = 0x3F;
481 data->extended_operation = 0x23;
487 data->auxiliary.length_valid = 0x1;
488 data->length = reclen;
489 data->operation.operation = 0x06;
493 data->auxiliary.length_valid = 0x1;
494 data->length = reclen;
495 data->operation.operation = 0x16;
498 data->operation.operation = 0x06;
501 data->operation.orientation = 0x1;
502 data->operation.operation = 0x0C;
503 data->extended_parameter_length = 0;
504 data->sector = 0xFF;
507 data->auxiliary.length_valid = 0x1;
508 data->length = tlf;
509 data->operation.operation = 0x0C;
512 data->length = reclen;
513 data->auxiliary.length_valid = 0x1;
514 data->operation.operation = 0x0b;
521 set_ch_t(&data->seek_addr,
524 data->search_arg.cyl = data->seek_addr.cyl;
525 data->search_arg.head = data->seek_addr.head;
526 data->search_arg.record = rec_on_trk;
557 /* prefix data */
582 * data when XRC is supported. The validity of the time stamp must be
583 * reflected in the prefix data as well.
605 locate_record(struct ccw1 *ccw, struct LO_eckd_data *data, unsigned int trk,
620 ccw->cda = (__u32)virt_to_phys(data);
622 memset(data, 0, sizeof(struct LO_eckd_data));
637 data->sector = sector;
638 data->count = no_rec;
641 data->operation.orientation = 0x3;
642 data->operation.operation = 0x03;
645 data->operation.orientation = 0x3;
646 data->operation.operation = 0x16;
649 data->operation.orientation = 0x1;
650 data->operation.operation = 0x03;
651 data->count++;
654 data->operation.orientation = 0x3;
655 data->operation.operation = 0x16;
656 data->count++;
662 data->auxiliary.last_bytes_used = 0x1;
663 data->length = reclen;
664 data->operation.operation = 0x01;
668 data->auxiliary.last_bytes_used = 0x1;
669 data->length = reclen;
670 data->operation.operation = 0x03;
676 data->auxiliary.last_bytes_used = 0x1;
677 data->length = reclen;
678 data->operation.operation = 0x06;
682 data->auxiliary.last_bytes_used = 0x1;
683 data->length = reclen;
684 data->operation.operation = 0x16;
687 data->operation.operation = 0x06;
690 data->length = reclen;
691 data->auxiliary.last_bytes_used = 0x1;
692 data->operation.operation = 0x0b;
698 set_ch_t(&data->seek_addr,
701 data->search_arg.cyl = data->seek_addr.cyl;
702 data->search_arg.head = data->seek_addr.head;
703 data->search_arg.record = rec_on_trk;
802 * compare device UID with data of a given dasd_eckd_private structure
856 static void read_conf_cb(struct dasd_ccw_req *cqr, void *data)
871 dasd_wakeup_cb(cqr, data);
882 * sanity check: scan for RCD command in extended SenseID data
908 * sanity check: scan for RCD command in extended SenseID data
922 0, /* use rcd_buf as data ara */
961 sneq = (struct dasd_sneq *)conf->data;
1014 * path handling and read_conf allocate data
1017 * with the new one if this points to the same data
1020 if (private->conf.data == cdp) {
1021 private->conf.data = (void *)conf_data;
1040 private->conf.data = NULL;
1100 path_conf.data = conf_data;
1129 /* get configuration data per operational path */
1137 "Read configuration data returned "
1143 "No configuration data "
1149 /* save first valid configuration data */
1153 private->conf.data = conf_data;
1156 private->conf.data = NULL;
1162 * build device UID that other path data
1216 dev_warn(&device->cdev->dev, "Detecting the maximum supported data size for zHPF requests failed\n");
1233 "Detecting the maximum data size for zHPF "
1241 "The maximum data size for zHPF requests %u "
1252 struct pe_handler_work_data *data)
1261 memset(&data->rcd_buffer, 0, sizeof(data->rcd_buffer));
1262 memset(&data->cqr, 0, sizeof(data->cqr));
1263 data->cqr.cpaddr = &data->ccw;
1264 rc = dasd_eckd_read_conf_immediately(device, &data->cqr,
1265 data->rcd_buffer,
1272 "Read configuration data "
1276 memcpy(private->conf.data, data->rcd_buffer,
1291 struct pe_handler_work_data *data)
1309 if (!(lpm & data->tbvpm))
1311 memset(&data->rcd_buffer, 0, sizeof(data->rcd_buffer));
1312 memset(&data->cqr, 0, sizeof(data->cqr));
1313 data->cqr.cpaddr = &data->ccw;
1314 rc = dasd_eckd_read_conf_immediately(device, &data->cqr,
1315 data->rcd_buffer,
1318 switch (dasd_eckd_path_access(data->rcd_buffer,
1332 "data retrieved");
1356 * the original data
1358 memcpy(&path_rcd_buf, data->rcd_buffer,
1360 path_conf.data = (void *)&path_rcd_buf;
1363 path_conf.data = NULL;
1387 if (rebuild_device_uid(device, data) ||
1406 memcpy(conf_data, data->rcd_buffer,
1410 * path is operational but path config data could not
1450 struct pe_handler_work_data *data;
1453 data = container_of(work, struct pe_handler_work_data, worker);
1454 device = data->device;
1467 if (data->tbvpm)
1468 dasd_eckd_path_available_action(device, data);
1469 if (data->fcsecpm)
1474 if (data->isglobal)
1477 kfree(data);
1483 struct pe_handler_work_data *data;
1485 data = kzalloc(sizeof(*data), GFP_ATOMIC | GFP_DMA);
1486 if (!data) {
1488 data = pe_handler_worker;
1489 data->isglobal = 1;
1494 INIT_WORK(&data->worker, do_pe_handler_work);
1496 data->device = device;
1497 data->tbvpm = tbvpm;
1498 data->fcsecpm = fcsecpm;
1499 schedule_work(&data->worker);
1542 prssdp = (struct dasd_psf_prssd_data *) cqr->data;
1567 prssdp = (struct dasd_psf_prssd_data *) cqr->data;
1606 cqr->data = &dasd_vol_info_req->data;
1611 prssdp = cqr->data;
1676 * The data for this value is therefore updated on any call.
1711 struct ext_pool_exhaust_work_data *data;
1715 data = container_of(work, struct ext_pool_exhaust_work_data, worker);
1716 device = data->device;
1717 base = data->base;
1729 kfree(data);
1735 struct ext_pool_exhaust_work_data *data;
1737 data = kzalloc(sizeof(*data), GFP_ATOMIC);
1738 if (!data)
1740 INIT_WORK(&data->worker, dasd_eckd_ext_pool_exhaust_work);
1742 data->device = device;
1745 data->base = cqr->block->base;
1747 data->base = cqr->basedev;
1749 data->base = NULL;
1751 schedule_work(&data->worker);
1797 prssdp = cqr->data;
1903 psf_ssc_data = (struct dasd_psf_ssc_data *)cqr->data;
2090 "Allocating memory for private DASD data "
2156 /* device may report different configuration data after LCU setup */
2254 define_extent(ccw++, cqr->data, 0, 1,
2256 LO_data = cqr->data + sizeof(struct DE_eckd_data);
2321 void *data)
2538 itcw = itcw_init(cqr->data, itcw_size, ITCW_OP_READ, 0, count, 0);
2596 void *data;
2630 data = cqr->data;
2634 prefix_LRE(ccw++, data, fdata->start_unit, fdata->stop_unit,
2638 define_extent(ccw++, data, fdata->start_unit, fdata->stop_unit,
2641 data += sizeof(struct DE_eckd_data);
2644 locate_record(ccw++, data, fdata->start_unit, 0, count,
2681 void *data;
2773 data = fcp->data;
2779 prefix(ccw++, (struct PFX_eckd_data *) data,
2784 ((struct PFX_eckd_data *)data)
2786 data += sizeof(struct PFX_eckd_data);
2788 define_extent(ccw++, (struct DE_eckd_data *) data,
2793 ((struct DE_eckd_data *) data)
2795 data += sizeof(struct DE_eckd_data);
2798 locate_record(ccw++, (struct LO_eckd_data *) data,
2802 data += sizeof(struct LO_eckd_data);
2806 prefix(ccw++, (struct PFX_eckd_data *) data,
2810 data += sizeof(struct PFX_eckd_data);
2812 define_extent(ccw++, (struct DE_eckd_data *) data,
2815 data += sizeof(struct DE_eckd_data);
2818 locate_record(ccw++, (struct LO_eckd_data *) data,
2822 data += sizeof(struct LO_eckd_data);
2826 prefix(ccw++, (struct PFX_eckd_data *) data,
2829 data += sizeof(struct PFX_eckd_data);
2831 define_extent(ccw++, (struct DE_eckd_data *) data,
2834 data += sizeof(struct DE_eckd_data);
2837 locate_record(ccw++, (struct LO_eckd_data *) data,
2840 data += sizeof(struct LO_eckd_data);
2852 ect = (struct eckd_count *) data;
2853 data += sizeof(struct eckd_count);
2867 ect = (struct eckd_count *) data;
2868 data += sizeof(struct eckd_count);
2881 ect = (struct eckd_count *) data;
2882 data += sizeof(struct eckd_count);
2931 * Wrapper function to build a CCW request depending on input data
3077 * Only get sense data if called by format
3139 * To avoid data corruption treat it as if the current track is
3172 static void dasd_eckd_ese_format_cb(struct dasd_ccw_req *cqr, void *data)
3176 struct dasd_format_entry *format = data;
3256 * When data is read from an unformatted area of an ESE volume, this function
3257 * returns zeroed data and thereby mimics a read of zero data.
3260 * encoded in the sense data.
3262 * All tracks before have returned valid data and should not be touched.
3264 * currently not known, remember the processed data and return the remainder of
3304 /* sanity check if the current track from sense data is valid */
3353 * - if data reoccurs (same head and record may reoccur), which may
3357 * - when we've reached the end of sensible data in the buffer (the
3375 * record ids, and key length are compared with expected data.
3808 ras_data = cqr->data;
3834 ras_range = (struct dasd_dso_ras_ext_range *)(cqr->data + ras_size);
3854 ccw->cda = (__u32)virt_to_phys(cqr->data);
4049 if (prefix(ccw++, cqr->data, first_trk,
4057 idaws = (unsigned long *) (cqr->data +
4060 if (define_extent(ccw++, cqr->data, first_trk,
4068 idaws = (unsigned long *) (cqr->data +
4221 if (prefix_LRE(ccw++, cqr->data, first_trk,
4240 idaws = (unsigned long *) (cqr->data + sizeof(struct PFX_eckd_data));
4358 /* setup prefix data */
4403 * data as well.
4560 itcw = itcw_init(cqr->data, itcw_size, itcw_op, 0, ctidaw, 0);
4700 /* tpm write request add CBC data on each track boundary */
4704 /* is read track data and write track data in command mode supported? */
4762 void *data;
4827 data = cqr->data;
4830 prefix_LRE(ccw++, data, first_trk, last_trk, cmd, basedev,
4833 define_extent(ccw++, data, first_trk, last_trk, cmd, basedev, 0);
4836 data += sizeof(struct DE_eckd_data);
4837 locate_record_ext(ccw++, data, first_trk, 0,
4841 idaws = (unsigned long *)(cqr->data + size);
4971 pfxdata = cqr->data;
5036 memcpy(info->configuration_data, private->conf.data,
5071 cqr->data = &dasd_reserve_req->data;
5078 ccw->cda = (__u32)virt_to_phys(cqr->data);
5126 cqr->data = &dasd_reserve_req->data;
5133 ccw->cda = (__u32)virt_to_phys(cqr->data);
5180 cqr->data = &dasd_reserve_req->data;
5187 ccw->cda = (__u32)virt_to_phys(cqr->data);
5241 cqr->data = &dasd_reserve_req->data;
5248 ccw->cda = (__u32)virt_to_phys(cqr->data);
5265 usrparm.data = *((struct dasd_snid_data *)cqr->data);
5305 prssdp = (struct dasd_psf_prssd_data *) cqr->data;
5330 prssdp = (struct dasd_psf_prssd_data *) cqr->data;
5423 "Symmetrix ioctl invalid data length %d",
5428 /* alloc I/O data area */
5543 /* get pointer to data (consider IDALs) */
5549 /* dump data (max 128 bytes) */
5588 * Print sense data and related channel program.
5601 "No memory to dump sense data\n");
5604 /* dump the sense data */
5687 * Print sense data from a tcw.
5700 "No memory to dump sense data");
5703 /* dump the sense data */
5937 prssdp = (struct dasd_psf_prssd_data *) cqr->data;
5964 prssdp = (struct dasd_psf_prssd_data *) cqr->data;
5986 struct dasd_psf_query_host_access *data)
6025 prssdp = (struct dasd_psf_prssd_data *) cqr->data;
6054 *data = *host_access;
6057 "Reading host access data failed with rc=%d\n",
6246 struct dasd_pprc_data_sc4 *data)
6269 prssdp = (struct dasd_psf_prssd_data *)cqr->data;
6295 *data = *pprc_data;
6373 psf_cuir = (struct dasd_psf_cuir_response *)cqr->data;
6402 * return configuration data that is referenced by record selector
6427 * analysing the path and device selection data provided in the CUIR request.
6451 /* get reference conf data */
6463 /* initialise data per path */
6757 /* In any case, update related data */
6766 struct check_attention_work_data *data;
6771 data = container_of(work, struct check_attention_work_data, worker);
6772 device = data->device;
6779 rc = dasd_eckd_read_message_buffer(device, messages, data->lpum);
6785 dasd_eckd_handle_cuir(device, messages, data->lpum);
6788 dasd_eckd_handle_oos(device, messages, data->lpum);
6793 kfree(data);
6798 struct check_attention_work_data *data;
6800 data = kzalloc(sizeof(*data), GFP_ATOMIC);
6801 if (!data)
6803 INIT_WORK(&data->worker, dasd_eckd_check_attention_work);
6805 data->device = device;
6806 data->lpum = lpum;
6807 schedule_work(&data->worker);