Lines Matching refs:device

107 	struct dasd_device *device;  member
119 struct dasd_device *device; member
213 struct dasd_device *device) in check_XRC() argument
218 private = (struct dasd_eckd_private *) device->private; in check_XRC()
238 unsigned int totrk, int cmd, struct dasd_device *device) in define_extent() argument
245 private = (struct dasd_eckd_private *) device->private; in define_extent()
272 rc = check_XRC (ccw, data, device); in define_extent()
277 rc = check_XRC (ccw, data, device); in define_extent()
285 rc = check_XRC (ccw, data, device); in define_extent()
288 dev_err(&device->cdev->dev, in define_extent()
323 struct dasd_device *device) in check_XRC_on_prefix() argument
328 private = (struct dasd_eckd_private *) device->private; in check_XRC_on_prefix()
346 struct dasd_device *device, unsigned int reclen, in fill_LRE_data() argument
353 private = (struct dasd_eckd_private *) device->private; in fill_LRE_data()
466 DBF_DEV_EVENT(DBF_ERR, device, in fill_LRE_data()
632 struct dasd_device * device, int reclen) in locate_record() argument
638 private = (struct dasd_eckd_private *) device->private; in locate_record()
640 DBF_DEV_EVENT(DBF_INFO, device, in locate_record()
722 DBF_DEV_EVENT(DBF_ERR, device, "unknown locate record " in locate_record()
801 static int dasd_eckd_generate_uid(struct dasd_device *device) in dasd_eckd_generate_uid() argument
806 private = (struct dasd_eckd_private *) device->private; in dasd_eckd_generate_uid()
811 spin_lock_irqsave(get_ccwdev_lock(device->cdev), flags); in dasd_eckd_generate_uid()
813 spin_unlock_irqrestore(get_ccwdev_lock(device->cdev), flags); in dasd_eckd_generate_uid()
817 static int dasd_eckd_get_uid(struct dasd_device *device, struct dasd_uid *uid) in dasd_eckd_get_uid() argument
822 if (device->private) { in dasd_eckd_get_uid()
823 private = (struct dasd_eckd_private *)device->private; in dasd_eckd_get_uid()
824 spin_lock_irqsave(get_ccwdev_lock(device->cdev), flags); in dasd_eckd_get_uid()
826 spin_unlock_irqrestore(get_ccwdev_lock(device->cdev), flags); in dasd_eckd_get_uid()
836 static int dasd_eckd_compare_path_uid(struct dasd_device *device, in dasd_eckd_compare_path_uid() argument
842 dasd_eckd_get_uid(device, &device_uid); in dasd_eckd_compare_path_uid()
847 static void dasd_eckd_fill_rcd_cqr(struct dasd_device *device, in dasd_eckd_fill_rcd_cqr() argument
869 cqr->startdev = device; in dasd_eckd_fill_rcd_cqr()
870 cqr->memdev = device; in dasd_eckd_fill_rcd_cqr()
904 static int dasd_eckd_read_conf_immediately(struct dasd_device *device, in dasd_eckd_read_conf_immediately() argument
915 ciw = ccw_device_get_ciw(device->cdev, CIW_TYPE_RCD); in dasd_eckd_read_conf_immediately()
919 dasd_eckd_fill_rcd_cqr(device, cqr, rcd_buffer, lpm); in dasd_eckd_read_conf_immediately()
928 static int dasd_eckd_read_conf_lpm(struct dasd_device *device, in dasd_eckd_read_conf_lpm() argument
941 ciw = ccw_device_get_ciw(device->cdev, CIW_TYPE_RCD); in dasd_eckd_read_conf_lpm()
953 device); in dasd_eckd_read_conf_lpm()
955 DBF_DEV_EVENT(DBF_WARNING, device, "%s", in dasd_eckd_read_conf_lpm()
960 dasd_eckd_fill_rcd_cqr(device, cqr, rcd_buf, lpm); in dasd_eckd_read_conf_lpm()
1035 static int dasd_eckd_read_conf(struct dasd_device *device) in dasd_eckd_read_conf() argument
1046 private = (struct dasd_eckd_private *) device->private; in dasd_eckd_read_conf()
1047 path_data = &device->path_data; in dasd_eckd_read_conf()
1048 opm = ccw_device_get_path_mask(device->cdev); in dasd_eckd_read_conf()
1055 rc = dasd_eckd_read_conf_lpm(device, &conf_data, in dasd_eckd_read_conf()
1058 DBF_EVENT_DEVID(DBF_WARNING, device->cdev, in dasd_eckd_read_conf()
1064 DBF_EVENT_DEVID(DBF_WARNING, device->cdev, "%s", in dasd_eckd_read_conf()
1086 dasd_eckd_generate_uid(device); in dasd_eckd_read_conf()
1100 device, &path_private)) { in dasd_eckd_read_conf()
1131 dev_err(&device->cdev->dev, in dasd_eckd_read_conf()
1168 static int verify_fcx_max_data(struct dasd_device *device, __u8 lpm) in verify_fcx_max_data() argument
1174 private = (struct dasd_eckd_private *) device->private; in verify_fcx_max_data()
1176 mdc = ccw_device_get_mdc(device->cdev, lpm); in verify_fcx_max_data()
1178 dev_warn(&device->cdev->dev, in verify_fcx_max_data()
1186 dev_warn(&device->cdev->dev, in verify_fcx_max_data()
1197 static int rebuild_device_uid(struct dasd_device *device, in rebuild_device_uid() argument
1206 private = (struct dasd_eckd_private *) device->private; in rebuild_device_uid()
1207 path_data = &device->path_data; in rebuild_device_uid()
1208 opm = device->path_data.opm; in rebuild_device_uid()
1216 rc = dasd_eckd_read_conf_immediately(device, &data->cqr, in rebuild_device_uid()
1223 DBF_EVENT_DEVID(DBF_WARNING, device->cdev, in rebuild_device_uid()
1237 rc = dasd_eckd_generate_uid(device); in rebuild_device_uid()
1245 struct dasd_device *device; in do_path_verification_work() local
1255 device = data->device; in do_path_verification_work()
1258 if (test_bit(DASD_FLAG_SUSPENDED, &device->flags)) { in do_path_verification_work()
1276 rc = dasd_eckd_read_conf_immediately(device, &data->cqr, in do_path_verification_work()
1292 DBF_EVENT_DEVID(DBF_WARNING, device->cdev, "%s", in do_path_verification_work()
1297 DBF_EVENT_DEVID(DBF_WARNING, device->cdev, "%s", in do_path_verification_work()
1302 dev_warn(&device->cdev->dev, in do_path_verification_work()
1307 if (verify_fcx_max_data(device, lpm)) { in do_path_verification_work()
1336 if (device->path_data.opm && in do_path_verification_work()
1337 dasd_eckd_compare_path_uid(device, &path_private)) { in do_path_verification_work()
1349 if (rebuild_device_uid(device, data) || in do_path_verification_work()
1351 device, &path_private)) { in do_path_verification_work()
1365 dev_err(&device->cdev->dev, in do_path_verification_work()
1385 spin_lock_irqsave(get_ccwdev_lock(device->cdev), flags); in do_path_verification_work()
1386 if (!device->path_data.opm && opm) { in do_path_verification_work()
1387 device->path_data.opm = opm; in do_path_verification_work()
1388 device->path_data.cablepm &= ~opm; in do_path_verification_work()
1389 device->path_data.cuirpm &= ~opm; in do_path_verification_work()
1390 device->path_data.hpfpm &= ~opm; in do_path_verification_work()
1391 dasd_generic_path_operational(device); in do_path_verification_work()
1393 device->path_data.opm |= opm; in do_path_verification_work()
1394 device->path_data.cablepm &= ~opm; in do_path_verification_work()
1395 device->path_data.cuirpm &= ~opm; in do_path_verification_work()
1396 device->path_data.hpfpm &= ~opm; in do_path_verification_work()
1398 device->path_data.npm |= npm; in do_path_verification_work()
1399 device->path_data.ppm |= ppm; in do_path_verification_work()
1400 device->path_data.tbvpm |= epm; in do_path_verification_work()
1401 device->path_data.cablepm |= cablepm; in do_path_verification_work()
1402 device->path_data.hpfpm |= hpfpm; in do_path_verification_work()
1403 spin_unlock_irqrestore(get_ccwdev_lock(device->cdev), flags); in do_path_verification_work()
1406 dasd_put_device(device); in do_path_verification_work()
1413 static int dasd_eckd_verify_path(struct dasd_device *device, __u8 lpm) in dasd_eckd_verify_path() argument
1429 dasd_get_device(device); in dasd_eckd_verify_path()
1430 data->device = device; in dasd_eckd_verify_path()
1436 static int dasd_eckd_read_features(struct dasd_device *device) in dasd_eckd_read_features() argument
1445 private = (struct dasd_eckd_private *) device->private; in dasd_eckd_read_features()
1450 device); in dasd_eckd_read_features()
1452 DBF_EVENT_DEVID(DBF_WARNING, device->cdev, "%s", "Could not " in dasd_eckd_read_features()
1456 cqr->startdev = device; in dasd_eckd_read_features()
1457 cqr->memdev = device; in dasd_eckd_read_features()
1493 dev_warn(&device->cdev->dev, "Reading device feature codes" in dasd_eckd_read_features()
1503 static struct dasd_ccw_req *dasd_eckd_build_psf_ssc(struct dasd_device *device, in dasd_eckd_build_psf_ssc() argument
1512 device); in dasd_eckd_build_psf_ssc()
1515 DBF_DEV_EVENT(DBF_WARNING, device, "%s", in dasd_eckd_build_psf_ssc()
1531 cqr->startdev = device; in dasd_eckd_build_psf_ssc()
1532 cqr->memdev = device; in dasd_eckd_build_psf_ssc()
1547 dasd_eckd_psf_ssc(struct dasd_device *device, int enable_pav, in dasd_eckd_psf_ssc() argument
1553 cqr = dasd_eckd_build_psf_ssc(device, enable_pav); in dasd_eckd_psf_ssc()
1577 static int dasd_eckd_validate_server(struct dasd_device *device, in dasd_eckd_validate_server() argument
1584 private = (struct dasd_eckd_private *) device->private; in dasd_eckd_validate_server()
1592 rc = dasd_eckd_psf_ssc(device, enable_pav, flags); in dasd_eckd_validate_server()
1596 DBF_EVENT_DEVID(DBF_WARNING, device->cdev, "PSF-SSC for SSID %04x " in dasd_eckd_validate_server()
1606 struct dasd_device *device = container_of(work, struct dasd_device, in dasd_eckd_do_validate_server() local
1611 if (dasd_eckd_validate_server(device, flags) in dasd_eckd_do_validate_server()
1614 schedule_work(&device->kick_validate); in dasd_eckd_do_validate_server()
1618 dasd_put_device(device); in dasd_eckd_do_validate_server()
1621 static void dasd_eckd_kick_validate_server(struct dasd_device *device) in dasd_eckd_kick_validate_server() argument
1623 dasd_get_device(device); in dasd_eckd_kick_validate_server()
1625 if (test_bit(DASD_FLAG_OFFLINE, &device->flags) || in dasd_eckd_kick_validate_server()
1626 device->state < DASD_STATE_ONLINE) { in dasd_eckd_kick_validate_server()
1627 dasd_put_device(device); in dasd_eckd_kick_validate_server()
1631 if (!schedule_work(&device->kick_validate)) in dasd_eckd_kick_validate_server()
1632 dasd_put_device(device); in dasd_eckd_kick_validate_server()
1635 static u32 get_fcx_max_data(struct dasd_device *device) in get_fcx_max_data() argument
1644 private = (struct dasd_eckd_private *) device->private; in get_fcx_max_data()
1653 mdc = ccw_device_get_mdc(device->cdev, 0); in get_fcx_max_data()
1655 dev_warn(&device->cdev->dev, "Detecting the maximum supported" in get_fcx_max_data()
1667 dasd_eckd_check_characteristics(struct dasd_device *device) in dasd_eckd_check_characteristics() argument
1677 INIT_WORK(&device->kick_validate, dasd_eckd_do_validate_server); in dasd_eckd_check_characteristics()
1679 if (!ccw_device_is_pathgroup(device->cdev)) { in dasd_eckd_check_characteristics()
1680 dev_warn(&device->cdev->dev, in dasd_eckd_check_characteristics()
1684 if (!ccw_device_is_multipath(device->cdev)) { in dasd_eckd_check_characteristics()
1685 dev_info(&device->cdev->dev, in dasd_eckd_check_characteristics()
1688 private = (struct dasd_eckd_private *) device->private; in dasd_eckd_check_characteristics()
1692 dev_warn(&device->cdev->dev, in dasd_eckd_check_characteristics()
1697 device->private = (void *) private; in dasd_eckd_check_characteristics()
1708 rc = dasd_eckd_read_conf(device); in dasd_eckd_check_characteristics()
1713 device->default_expires = DASD_EXPIRES; in dasd_eckd_check_characteristics()
1715 device->default_retries = DASD_RETRIES; in dasd_eckd_check_characteristics()
1724 device->default_expires = value; in dasd_eckd_check_characteristics()
1727 dasd_eckd_get_uid(device, &temp_uid); in dasd_eckd_check_characteristics()
1731 DBF_EVENT_DEVID(DBF_WARNING, device->cdev, "%s", in dasd_eckd_check_characteristics()
1737 device->block = block; in dasd_eckd_check_characteristics()
1738 block->base = device; in dasd_eckd_check_characteristics()
1742 rc = dasd_alias_make_device_known_to_lcu(device); in dasd_eckd_check_characteristics()
1746 dasd_eckd_validate_server(device, 0); in dasd_eckd_check_characteristics()
1749 rc = dasd_eckd_read_conf(device); in dasd_eckd_check_characteristics()
1754 dasd_eckd_read_features(device); in dasd_eckd_check_characteristics()
1757 rc = dasd_generic_read_dev_chars(device, DASD_ECKD_MAGIC, in dasd_eckd_check_characteristics()
1760 DBF_EVENT_DEVID(DBF_WARNING, device->cdev, in dasd_eckd_check_characteristics()
1765 if ((device->features & DASD_FEATURE_USERAW) && in dasd_eckd_check_characteristics()
1767 dev_err(&device->cdev->dev, "The storage server does not " in dasd_eckd_check_characteristics()
1780 private->fcx_max_data = get_fcx_max_data(device); in dasd_eckd_check_characteristics()
1782 readonly = dasd_device_is_ro(device); in dasd_eckd_check_characteristics()
1784 set_bit(DASD_FLAG_DEVICE_RO, &device->flags); in dasd_eckd_check_characteristics()
1786 dev_info(&device->cdev->dev, "New DASD %04X/%02X (CU %04X/%02X) " in dasd_eckd_check_characteristics()
1799 dasd_alias_disconnect_device_from_lcu(device); in dasd_eckd_check_characteristics()
1801 dasd_free_block(device->block); in dasd_eckd_check_characteristics()
1802 device->block = NULL; in dasd_eckd_check_characteristics()
1805 kfree(device->private); in dasd_eckd_check_characteristics()
1806 device->private = NULL; in dasd_eckd_check_characteristics()
1810 static void dasd_eckd_uncheck_device(struct dasd_device *device) in dasd_eckd_uncheck_device() argument
1814 private = (struct dasd_eckd_private *) device->private; in dasd_eckd_uncheck_device()
1815 dasd_alias_disconnect_device_from_lcu(device); in dasd_eckd_uncheck_device()
1826 dasd_eckd_analysis_ccw(struct dasd_device *device) in dasd_eckd_analysis_ccw() argument
1836 private = (struct dasd_eckd_private *) device->private; in dasd_eckd_analysis_ccw()
1840 cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, cplength, datasize, device); in dasd_eckd_analysis_ccw()
1846 DASD_ECKD_CCW_READ_COUNT, device); in dasd_eckd_analysis_ccw()
1851 DASD_ECKD_CCW_READ_COUNT, device, 0); in dasd_eckd_analysis_ccw()
1867 DASD_ECKD_CCW_READ_COUNT, device, 0); in dasd_eckd_analysis_ccw()
1876 cqr->startdev = device; in dasd_eckd_analysis_ccw()
1877 cqr->memdev = device; in dasd_eckd_analysis_ccw()
1912 struct dasd_device *device; in dasd_eckd_analysis_callback() local
1914 device = init_cqr->startdev; in dasd_eckd_analysis_callback()
1915 private = (struct dasd_eckd_private *) device->private; in dasd_eckd_analysis_callback()
1917 dasd_sfree_request(init_cqr, device); in dasd_eckd_analysis_callback()
1918 dasd_kick_device(device); in dasd_eckd_analysis_callback()
1942 struct dasd_device *device; in dasd_eckd_end_analysis() local
1949 device = block->base; in dasd_eckd_end_analysis()
1950 private = (struct dasd_eckd_private *) device->private; in dasd_eckd_end_analysis()
1955 init_cqr = dasd_eckd_analysis_ccw(device); in dasd_eckd_end_analysis()
1958 dasd_sfree_request(init_cqr, device); in dasd_eckd_end_analysis()
1961 if (device->features & DASD_FEATURE_USERAW) { in dasd_eckd_end_analysis()
1969 dev_warn(&device->cdev->dev, "The DASD is not formatted\n"); in dasd_eckd_end_analysis()
1972 dev_err(&device->cdev->dev, in dasd_eckd_end_analysis()
2008 dev_warn(&device->cdev->dev, in dasd_eckd_end_analysis()
2018 dev_warn(&device->cdev->dev, in dasd_eckd_end_analysis()
2033 dev_info(&device->cdev->dev, in dasd_eckd_end_analysis()
2057 static int dasd_eckd_basic_to_ready(struct dasd_device *device) in dasd_eckd_basic_to_ready() argument
2059 return dasd_alias_add_device(device); in dasd_eckd_basic_to_ready()
2062 static int dasd_eckd_online_to_ready(struct dasd_device *device) in dasd_eckd_online_to_ready() argument
2064 cancel_work_sync(&device->reload_device); in dasd_eckd_online_to_ready()
2065 cancel_work_sync(&device->kick_validate); in dasd_eckd_online_to_ready()
2069 static int dasd_eckd_basic_to_known(struct dasd_device *device) in dasd_eckd_basic_to_known() argument
2071 return dasd_alias_remove_device(device); in dasd_eckd_basic_to_known()
2360 struct dasd_device *device; in dasd_eckd_format_device() local
2441 device = cqr->startdev; in dasd_eckd_format_device()
2442 private = (struct dasd_eckd_private *) device->private; in dasd_eckd_format_device()
2446 dasd_sfree_request(cqr, device); in dasd_eckd_format_device()
2480 struct dasd_device *device = (struct dasd_device *) cqr->startdev; in dasd_eckd_erp_action() local
2481 struct ccw_device *cdev = device->cdev; in dasd_eckd_erp_action()
2502 static void dasd_eckd_check_for_device_change(struct dasd_device *device, in dasd_eckd_check_for_device_change() argument
2510 private = (struct dasd_eckd_private *) device->private; in dasd_eckd_check_for_device_change()
2518 if (!device->block && private->lcu && in dasd_eckd_check_for_device_change()
2519 device->state == DASD_STATE_ONLINE && in dasd_eckd_check_for_device_change()
2520 !test_bit(DASD_FLAG_OFFLINE, &device->flags) && in dasd_eckd_check_for_device_change()
2521 !test_bit(DASD_FLAG_SUSPENDED, &device->flags)) { in dasd_eckd_check_for_device_change()
2528 dasd_alias_remove_device(device); in dasd_eckd_check_for_device_change()
2531 dasd_reload_device(device); in dasd_eckd_check_for_device_change()
2533 dasd_generic_handle_state_change(device); in dasd_eckd_check_for_device_change()
2544 dasd_alias_handle_summary_unit_check(device, irb); in dasd_eckd_check_for_device_change()
2551 dasd_3990_erp_handle_sim(device, sense); in dasd_eckd_check_for_device_change()
2558 if (device->block && (sense[27] & DASD_SENSE_BIT_0) && in dasd_eckd_check_for_device_change()
2561 test_bit(DASD_FLAG_IS_RESERVED, &device->flags)) { in dasd_eckd_check_for_device_change()
2562 if (device->features & DASD_FEATURE_FAILONSLCK) in dasd_eckd_check_for_device_change()
2563 set_bit(DASD_FLAG_LOCK_STOLEN, &device->flags); in dasd_eckd_check_for_device_change()
2564 clear_bit(DASD_FLAG_IS_RESERVED, &device->flags); in dasd_eckd_check_for_device_change()
2565 dev_err(&device->cdev->dev, in dasd_eckd_check_for_device_change()
3582 dasd_eckd_fill_info(struct dasd_device * device, in dasd_eckd_fill_info() argument
3587 private = (struct dasd_eckd_private *) device->private; in dasd_eckd_fill_info()
3611 dasd_eckd_release(struct dasd_device *device) in dasd_eckd_release() argument
3622 cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1, 32, device); in dasd_eckd_release()
3639 cqr->startdev = device; in dasd_eckd_release()
3640 cqr->memdev = device; in dasd_eckd_release()
3650 clear_bit(DASD_FLAG_IS_RESERVED, &device->flags); in dasd_eckd_release()
3666 dasd_eckd_reserve(struct dasd_device *device) in dasd_eckd_reserve() argument
3677 cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1, 32, device); in dasd_eckd_reserve()
3694 cqr->startdev = device; in dasd_eckd_reserve()
3695 cqr->memdev = device; in dasd_eckd_reserve()
3705 set_bit(DASD_FLAG_IS_RESERVED, &device->flags); in dasd_eckd_reserve()
3720 dasd_eckd_steal_lock(struct dasd_device *device) in dasd_eckd_steal_lock() argument
3731 cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 1, 32, device); in dasd_eckd_steal_lock()
3748 cqr->startdev = device; in dasd_eckd_steal_lock()
3749 cqr->memdev = device; in dasd_eckd_steal_lock()
3759 set_bit(DASD_FLAG_IS_RESERVED, &device->flags); in dasd_eckd_steal_lock()
3774 static int dasd_eckd_snid(struct dasd_device *device, in dasd_eckd_snid() argument
3791 sizeof(struct dasd_snid_data), device); in dasd_eckd_snid()
3808 cqr->startdev = device; in dasd_eckd_snid()
3809 cqr->memdev = device; in dasd_eckd_snid()
3840 dasd_eckd_performance(struct dasd_device *device, void __user *argp) in dasd_eckd_performance() argument
3851 device); in dasd_eckd_performance()
3853 DBF_DEV_EVENT(DBF_WARNING, device, "%s", in dasd_eckd_performance()
3857 cqr->startdev = device; in dasd_eckd_performance()
3858 cqr->memdev = device; in dasd_eckd_performance()
3904 dasd_eckd_get_attrib(struct dasd_device *device, void __user *argp) in dasd_eckd_get_attrib() argument
3907 (struct dasd_eckd_private *)device->private; in dasd_eckd_get_attrib()
3929 dasd_eckd_set_attrib(struct dasd_device *device, void __user *argp) in dasd_eckd_set_attrib() argument
3932 (struct dasd_eckd_private *)device->private; in dasd_eckd_set_attrib()
3944 dev_info(&device->cdev->dev, in dasd_eckd_set_attrib()
3954 static int dasd_symm_io(struct dasd_device *device, void __user *argp) in dasd_symm_io() argument
3999 cqr = dasd_smalloc_request(DASD_ECKD_MAGIC, 2 , 0, device); in dasd_symm_io()
4001 DBF_DEV_EVENT(DBF_WARNING, device, "%s", in dasd_symm_io()
4007 cqr->startdev = device; in dasd_symm_io()
4008 cqr->memdev = device; in dasd_symm_io()
4047 DBF_DEV_EVENT(DBF_WARNING, device, in dasd_symm_io()
4056 struct dasd_device *device = block->base; in dasd_eckd_ioctl() local
4060 return dasd_eckd_get_attrib(device, argp); in dasd_eckd_ioctl()
4062 return dasd_eckd_set_attrib(device, argp); in dasd_eckd_ioctl()
4064 return dasd_eckd_performance(device, argp); in dasd_eckd_ioctl()
4066 return dasd_eckd_release(device); in dasd_eckd_ioctl()
4068 return dasd_eckd_reserve(device); in dasd_eckd_ioctl()
4070 return dasd_eckd_steal_lock(device); in dasd_eckd_ioctl()
4072 return dasd_eckd_snid(device, argp); in dasd_eckd_ioctl()
4074 return dasd_symm_io(device, argp); in dasd_eckd_ioctl()
4115 dasd_eckd_dump_sense_dbf(struct dasd_device *device, struct irb *irb, in dasd_eckd_dump_sense_dbf() argument
4124 DBF_DEV_EVENT(DBF_EMERG, device, "%s: %016llx %08x : " in dasd_eckd_dump_sense_dbf()
4129 DBF_DEV_EVENT(DBF_EMERG, device, "%s: %016llx %08x : %s", in dasd_eckd_dump_sense_dbf()
4139 static void dasd_eckd_dump_sense_ccw(struct dasd_device *device, in dasd_eckd_dump_sense_ccw() argument
4148 DBF_DEV_EVENT(DBF_WARNING, device, "%s", in dasd_eckd_dump_sense_ccw()
4155 dev_name(&device->cdev->dev)); in dasd_eckd_dump_sense_ccw()
4165 dev_name(&device->cdev->dev), in dasd_eckd_dump_sense_ccw()
4242 static void dasd_eckd_dump_sense_tcw(struct dasd_device *device, in dasd_eckd_dump_sense_tcw() argument
4252 DBF_DEV_EVENT(DBF_WARNING, device, " %s", in dasd_eckd_dump_sense_tcw()
4259 dev_name(&device->cdev->dev)); in dasd_eckd_dump_sense_tcw()
4270 dev_name(&device->cdev->dev), in dasd_eckd_dump_sense_tcw()
4371 static void dasd_eckd_dump_sense(struct dasd_device *device, in dasd_eckd_dump_sense() argument
4375 dasd_eckd_dump_sense_tcw(device, req, irb); in dasd_eckd_dump_sense()
4377 dasd_eckd_dump_sense_ccw(device, req, irb); in dasd_eckd_dump_sense()
4380 static int dasd_eckd_pm_freeze(struct dasd_device *device) in dasd_eckd_pm_freeze() argument
4387 dasd_alias_remove_device(device); in dasd_eckd_pm_freeze()
4388 dasd_alias_disconnect_device_from_lcu(device); in dasd_eckd_pm_freeze()
4393 static int dasd_eckd_restore_device(struct dasd_device *device) in dasd_eckd_restore_device() argument
4402 private = (struct dasd_eckd_private *) device->private; in dasd_eckd_restore_device()
4405 dasd_eckd_read_conf(device); in dasd_eckd_restore_device()
4407 dasd_eckd_get_uid(device, &temp_uid); in dasd_eckd_restore_device()
4409 rc = dasd_eckd_generate_uid(device); in dasd_eckd_restore_device()
4410 spin_lock_irqsave(get_ccwdev_lock(device->cdev), flags); in dasd_eckd_restore_device()
4412 dev_err(&device->cdev->dev, "The UID of the DASD has " in dasd_eckd_restore_device()
4414 spin_unlock_irqrestore(get_ccwdev_lock(device->cdev), flags); in dasd_eckd_restore_device()
4419 rc = dasd_alias_make_device_known_to_lcu(device); in dasd_eckd_restore_device()
4424 dasd_eckd_validate_server(device, cqr_flags); in dasd_eckd_restore_device()
4427 dasd_eckd_read_conf(device); in dasd_eckd_restore_device()
4430 dasd_eckd_read_features(device); in dasd_eckd_restore_device()
4433 rc = dasd_generic_read_dev_chars(device, DASD_ECKD_MAGIC, in dasd_eckd_restore_device()
4436 DBF_EVENT_DEVID(DBF_WARNING, device->cdev, in dasd_eckd_restore_device()
4440 spin_lock_irqsave(get_ccwdev_lock(device->cdev), flags); in dasd_eckd_restore_device()
4442 spin_unlock_irqrestore(get_ccwdev_lock(device->cdev), flags); in dasd_eckd_restore_device()
4445 dasd_alias_add_device(device); in dasd_eckd_restore_device()
4453 static int dasd_eckd_reload_device(struct dasd_device *device) in dasd_eckd_reload_device() argument
4461 private = (struct dasd_eckd_private *) device->private; in dasd_eckd_reload_device()
4463 spin_lock_irqsave(get_ccwdev_lock(device->cdev), flags); in dasd_eckd_reload_device()
4465 spin_unlock_irqrestore(get_ccwdev_lock(device->cdev), flags); in dasd_eckd_reload_device()
4468 rc = dasd_eckd_read_conf(device); in dasd_eckd_reload_device()
4472 rc = dasd_eckd_generate_uid(device); in dasd_eckd_reload_device()
4479 dasd_alias_update_add_device(device); in dasd_eckd_reload_device()
4481 dasd_eckd_get_uid(device, &uid); in dasd_eckd_reload_device()
4493 dev_info(&device->cdev->dev, in dasd_eckd_reload_device()
4503 static int dasd_eckd_read_message_buffer(struct dasd_device *device, in dasd_eckd_read_message_buffer() argument
4514 private = (struct dasd_eckd_private *) device->private; in dasd_eckd_read_message_buffer()
4518 device); in dasd_eckd_read_message_buffer()
4520 DBF_EVENT_DEVID(DBF_WARNING, device->cdev, "%s", in dasd_eckd_read_message_buffer()
4525 cqr->startdev = device; in dasd_eckd_read_message_buffer()
4526 cqr->memdev = device; in dasd_eckd_read_message_buffer()
4569 DBF_EVENT_DEVID(DBF_WARNING, device->cdev, in dasd_eckd_read_message_buffer()
4580 dasd_eckd_psf_cuir_response(struct dasd_device *device, int response, in dasd_eckd_psf_cuir_response() argument
4592 device); in dasd_eckd_psf_cuir_response()
4595 DBF_DEV_EVENT(DBF_WARNING, device, "%s", in dasd_eckd_psf_cuir_response()
4614 cqr->startdev = device; in dasd_eckd_psf_cuir_response()
4615 cqr->memdev = device; in dasd_eckd_psf_cuir_response()
4628 static int dasd_eckd_cuir_change_state(struct dasd_device *device, __u8 lpum) in dasd_eckd_cuir_change_state() argument
4633 spin_lock_irqsave(get_ccwdev_lock(device->cdev), flags); in dasd_eckd_cuir_change_state()
4634 tbcpm = device->path_data.opm & ~lpum; in dasd_eckd_cuir_change_state()
4636 device->path_data.opm = tbcpm; in dasd_eckd_cuir_change_state()
4637 device->path_data.cuirpm |= lpum; in dasd_eckd_cuir_change_state()
4639 spin_unlock_irqrestore(get_ccwdev_lock(device->cdev), flags); in dasd_eckd_cuir_change_state()
4651 static int dasd_eckd_cuir_quiesce(struct dasd_device *device, __u8 lpum, in dasd_eckd_cuir_quiesce() argument
4660 private = (struct dasd_eckd_private *) device->private; in dasd_eckd_cuir_quiesce()
4705 static int dasd_eckd_cuir_resume(struct dasd_device *device, __u8 lpum, in dasd_eckd_cuir_resume() argument
4715 private = (struct dasd_eckd_private *) device->private; in dasd_eckd_cuir_resume()
4764 static void dasd_eckd_handle_cuir(struct dasd_device *device, void *messages, in dasd_eckd_handle_cuir() argument
4771 ccw_device_get_schid(device->cdev, &sch_id); in dasd_eckd_handle_cuir()
4776 desc = ccw_device_get_chp_desc(device->cdev, pos); in dasd_eckd_handle_cuir()
4780 response = dasd_eckd_cuir_quiesce(device, lpum, desc, sch_id); in dasd_eckd_handle_cuir()
4783 response = dasd_eckd_cuir_resume(device, lpum, desc, sch_id); in dasd_eckd_handle_cuir()
4787 dasd_eckd_psf_cuir_response(device, response, cuir->message_id, in dasd_eckd_handle_cuir()
4798 struct dasd_device *device; in dasd_eckd_check_attention_work() local
4802 device = data->device; in dasd_eckd_check_attention_work()
4806 DBF_DEV_EVENT(DBF_WARNING, device, "%s", in dasd_eckd_check_attention_work()
4811 rc = dasd_eckd_read_message_buffer(device, messages, data->lpum); in dasd_eckd_check_attention_work()
4817 dasd_eckd_handle_cuir(device, messages, data->lpum); in dasd_eckd_check_attention_work()
4820 dasd_put_device(device); in dasd_eckd_check_attention_work()
4825 static int dasd_eckd_check_attention(struct dasd_device *device, __u8 lpum) in dasd_eckd_check_attention() argument
4833 dasd_get_device(device); in dasd_eckd_check_attention()
4834 data->device = device; in dasd_eckd_check_attention()