Lines Matching full:device

10  * Device mapping and dasd= parameter parsing functions. All devmap
39 * between device number and device index. To find a dasd_devmap_t
40 * that corresponds to a device number of a device index each
42 * the device number and one to search by the device index. As
43 * soon as big minor numbers are available the device index list
44 * can be removed since the device number will then be identical
45 * to the device index.
52 struct dasd_device *device; member
131 * Read a device busid/devno from a string.
141 pr_err("The IPL device is not a CCW device\n"); in dasd_busid()
206 pr_warn("%.*s is not a supported device option\n", in dasd_feature_list()
274 * Split a string of a device range into its pieces and return the from, to, and
286 /* Do we have a range or a single device? */ in dasd_evaluate_range_param()
305 * Try to interprete the range string as a device number or a range of devices.
345 pr_err("%s is not a valid device range\n", range); in dasd_parse_range()
356 /* each device in dasd= parameter should be set initially online */ in dasd_parse_range()
376 * keywords and device ranges. The parameters in that list will be stored as
404 * Add a devmap for the device specified by busid. It is possible that
431 new->device = NULL; in dasd_add_busid()
442 * Find devmap for device with given bus_id.
473 * Forget all about the device numbers added so far.
485 BUG_ON(devmap->device != NULL); in dasd_forget_ranges()
494 * Find the device struct by its device index.
500 struct dasd_device *device; in dasd_device_from_devindex() local
508 /* Found the devmap for the device. */ in dasd_device_from_devindex()
512 if (devmap && devmap->device) { in dasd_device_from_devindex()
513 device = devmap->device; in dasd_device_from_devindex()
514 dasd_get_device(device); in dasd_device_from_devindex()
516 device = ERR_PTR(-ENODEV); in dasd_device_from_devindex()
518 return device; in dasd_device_from_devindex()
538 * Create a dasd device structure for cdev.
544 struct dasd_device *device; in dasd_create_device() local
552 device = dasd_alloc_device(); in dasd_create_device()
553 if (IS_ERR(device)) in dasd_create_device()
554 return device; in dasd_create_device()
555 atomic_set(&device->ref_count, 3); in dasd_create_device()
558 if (!devmap->device) { in dasd_create_device()
559 devmap->device = device; in dasd_create_device()
560 device->devindex = devmap->devindex; in dasd_create_device()
561 device->features = devmap->features; in dasd_create_device()
563 device->cdev = cdev; in dasd_create_device()
571 dasd_free_device(device); in dasd_create_device()
576 dev_set_drvdata(&cdev->dev, device); in dasd_create_device()
579 device->paths_info = kset_create_and_add("paths_info", NULL, in dasd_create_device()
580 &device->cdev->dev.kobj); in dasd_create_device()
581 if (!device->paths_info) in dasd_create_device()
584 return device; in dasd_create_device()
593 * Remove a dasd device structure. The passed referenced
597 dasd_delete_device(struct dasd_device *device) in dasd_delete_device() argument
603 /* First remove device pointer from devmap. */ in dasd_delete_device()
604 devmap = dasd_find_busid(dev_name(&device->cdev->dev)); in dasd_delete_device()
607 if (devmap->device != device) { in dasd_delete_device()
609 dasd_put_device(device); in dasd_delete_device()
612 devmap->device = NULL; in dasd_delete_device()
616 spin_lock_irqsave(get_ccwdev_lock(device->cdev), flags); in dasd_delete_device()
617 dev_set_drvdata(&device->cdev->dev, NULL); in dasd_delete_device()
618 spin_unlock_irqrestore(get_ccwdev_lock(device->cdev), flags); in dasd_delete_device()
624 atomic_sub(3, &device->ref_count); in dasd_delete_device()
627 wait_event(dasd_delete_wq, atomic_read(&device->ref_count) == 0); in dasd_delete_device()
629 dasd_generic_free_discipline(device); in dasd_delete_device()
631 kset_unregister(device->paths_info); in dasd_delete_device()
634 cdev = device->cdev; in dasd_delete_device()
635 device->cdev = NULL; in dasd_delete_device()
640 /* Now the device structure can be freed. */ in dasd_delete_device()
641 dasd_free_device(device); in dasd_delete_device()
649 dasd_put_device_wake(struct dasd_device *device) in dasd_put_device_wake() argument
657 * This function needs to be called with the ccw device
663 struct dasd_device *device = dev_get_drvdata(&cdev->dev); in dasd_device_from_cdev_locked() local
665 if (!device) in dasd_device_from_cdev_locked()
667 dasd_get_device(device); in dasd_device_from_cdev_locked()
668 return device; in dasd_device_from_cdev_locked()
677 struct dasd_device *device; in dasd_device_from_cdev() local
681 device = dasd_device_from_cdev_locked(cdev); in dasd_device_from_cdev()
683 return device; in dasd_device_from_cdev()
686 void dasd_add_link_to_gendisk(struct gendisk *gdp, struct dasd_device *device) in dasd_add_link_to_gendisk() argument
690 devmap = dasd_find_busid(dev_name(&device->cdev->dev)); in dasd_add_link_to_gendisk()
700 struct dasd_device *device; in dasd_device_from_gendisk() local
705 device = NULL; in dasd_device_from_gendisk()
708 if (devmap && devmap->device) { in dasd_device_from_gendisk()
709 device = devmap->device; in dasd_device_from_gendisk()
710 dasd_get_device(device); in dasd_device_from_gendisk()
713 return device; in dasd_device_from_gendisk()
723 static ssize_t dasd_ff_show(struct device *dev, struct device_attribute *attr, in dasd_ff_show()
737 static ssize_t dasd_ff_store(struct device *dev, struct device_attribute *attr, in dasd_ff_store()
757 dasd_ro_show(struct device *dev, struct device_attribute *attr, char *buf) in dasd_ro_show()
760 struct dasd_device *device; in dasd_ro_show() local
770 device = devmap->device; in dasd_ro_show()
771 if (device) in dasd_ro_show()
772 ro_flag |= test_bit(DASD_FLAG_DEVICE_RO, &device->flags); in dasd_ro_show()
780 dasd_ro_store(struct device *dev, struct device_attribute *attr, in dasd_ro_store()
784 struct dasd_device *device; in dasd_ro_store() local
796 device = dasd_device_from_cdev(cdev); in dasd_ro_store()
797 if (IS_ERR(device)) in dasd_ro_store()
801 val = val || test_bit(DASD_FLAG_DEVICE_RO, &device->flags); in dasd_ro_store()
803 if (!device->block || !device->block->gdp || in dasd_ro_store()
804 test_bit(DASD_FLAG_OFFLINE, &device->flags)) { in dasd_ro_store()
808 /* Increase open_count to avoid losing the block device */ in dasd_ro_store()
809 atomic_inc(&device->block->open_count); in dasd_ro_store()
812 set_disk_ro(device->block->gdp, val); in dasd_ro_store()
813 atomic_dec(&device->block->open_count); in dasd_ro_store()
816 dasd_put_device(device); in dasd_ro_store()
827 dasd_erplog_show(struct device *dev, struct device_attribute *attr, char *buf) in dasd_erplog_show()
841 dasd_erplog_store(struct device *dev, struct device_attribute *attr, in dasd_erplog_store()
859 * to talk to the device
862 dasd_use_diag_show(struct device *dev, struct device_attribute *attr, char *buf) in dasd_use_diag_show()
876 dasd_use_diag_store(struct device *dev, struct device_attribute *attr, in dasd_use_diag_store()
893 if (!devmap->device && !(devmap->features & DASD_FEATURE_USERAW)) { in dasd_use_diag_store()
911 dasd_use_raw_show(struct device *dev, struct device_attribute *attr, char *buf) in dasd_use_raw_show()
925 dasd_use_raw_store(struct device *dev, struct device_attribute *attr, in dasd_use_raw_store()
942 if (!devmap->device && !(devmap->features & DASD_FEATURE_USEDIAG)) { in dasd_use_raw_store()
957 dasd_safe_offline_store(struct device *dev, struct device_attribute *attr, in dasd_safe_offline_store()
961 struct dasd_device *device; in dasd_safe_offline_store() local
966 device = dasd_device_from_cdev_locked(cdev); in dasd_safe_offline_store()
967 if (IS_ERR(device)) { in dasd_safe_offline_store()
968 rc = PTR_ERR(device); in dasd_safe_offline_store()
973 if (test_bit(DASD_FLAG_OFFLINE, &device->flags) || in dasd_safe_offline_store()
974 test_bit(DASD_FLAG_SAFE_OFFLINE_RUNNING, &device->flags)) { in dasd_safe_offline_store()
976 dasd_put_device(device); in dasd_safe_offline_store()
982 set_bit(DASD_FLAG_SAFE_OFFLINE, &device->flags); in dasd_safe_offline_store()
983 dasd_put_device(device); in dasd_safe_offline_store()
995 dasd_access_show(struct device *dev, struct device_attribute *attr, in dasd_access_show()
999 struct dasd_device *device; in dasd_access_show() local
1002 device = dasd_device_from_cdev(cdev); in dasd_access_show()
1003 if (IS_ERR(device)) in dasd_access_show()
1004 return PTR_ERR(device); in dasd_access_show()
1006 if (!device->discipline) in dasd_access_show()
1008 else if (!device->discipline->host_access_count) in dasd_access_show()
1011 count = device->discipline->host_access_count(device); in dasd_access_show()
1013 dasd_put_device(device); in dasd_access_show()
1023 dasd_discipline_show(struct device *dev, struct device_attribute *attr, in dasd_discipline_show()
1026 struct dasd_device *device; in dasd_discipline_show() local
1029 device = dasd_device_from_cdev(to_ccwdev(dev)); in dasd_discipline_show()
1030 if (IS_ERR(device)) in dasd_discipline_show()
1032 else if (!device->discipline) { in dasd_discipline_show()
1033 dasd_put_device(device); in dasd_discipline_show()
1037 device->discipline->name); in dasd_discipline_show()
1038 dasd_put_device(device); in dasd_discipline_show()
1049 dasd_device_status_show(struct device *dev, struct device_attribute *attr, in dasd_device_status_show()
1052 struct dasd_device *device; in dasd_device_status_show() local
1055 device = dasd_device_from_cdev(to_ccwdev(dev)); in dasd_device_status_show()
1056 if (!IS_ERR(device)) { in dasd_device_status_show()
1057 switch (device->state) { in dasd_device_status_show()
1080 dasd_put_device(device); in dasd_device_status_show()
1088 static ssize_t dasd_alias_show(struct device *dev, in dasd_alias_show()
1091 struct dasd_device *device; in dasd_alias_show() local
1094 device = dasd_device_from_cdev(to_ccwdev(dev)); in dasd_alias_show()
1095 if (IS_ERR(device)) in dasd_alias_show()
1098 if (device->discipline && device->discipline->get_uid && in dasd_alias_show()
1099 !device->discipline->get_uid(device, &uid)) { in dasd_alias_show()
1102 dasd_put_device(device); in dasd_alias_show()
1106 dasd_put_device(device); in dasd_alias_show()
1113 static ssize_t dasd_vendor_show(struct device *dev, in dasd_vendor_show()
1116 struct dasd_device *device; in dasd_vendor_show() local
1120 device = dasd_device_from_cdev(to_ccwdev(dev)); in dasd_vendor_show()
1122 if (IS_ERR(device)) in dasd_vendor_show()
1125 if (device->discipline && device->discipline->get_uid && in dasd_vendor_show()
1126 !device->discipline->get_uid(device, &uid)) in dasd_vendor_show()
1129 dasd_put_device(device); in dasd_vendor_show()
1141 dasd_uid_show(struct device *dev, struct device_attribute *attr, char *buf) in dasd_uid_show()
1143 struct dasd_device *device; in dasd_uid_show() local
1148 device = dasd_device_from_cdev(to_ccwdev(dev)); in dasd_uid_show()
1150 if (IS_ERR(device)) in dasd_uid_show()
1153 if (device->discipline && device->discipline->get_uid && in dasd_uid_show()
1154 !device->discipline->get_uid(device, &uid)) { in dasd_uid_show()
1168 /* should not happen, treat like base device */ in dasd_uid_show()
1184 dasd_put_device(device); in dasd_uid_show()
1194 dasd_eer_show(struct device *dev, struct device_attribute *attr, char *buf) in dasd_eer_show()
1200 if (!IS_ERR(devmap) && devmap->device) in dasd_eer_show()
1201 eer_flag = dasd_eer_enabled(devmap->device); in dasd_eer_show()
1208 dasd_eer_store(struct device *dev, struct device_attribute *attr, in dasd_eer_store()
1211 struct dasd_device *device; in dasd_eer_store() local
1215 device = dasd_device_from_cdev(to_ccwdev(dev)); in dasd_eer_store()
1216 if (IS_ERR(device)) in dasd_eer_store()
1217 return PTR_ERR(device); in dasd_eer_store()
1223 rc = dasd_eer_enable(device); in dasd_eer_store()
1225 dasd_eer_disable(device); in dasd_eer_store()
1227 dasd_put_device(device); in dasd_eer_store()
1238 dasd_expires_show(struct device *dev, struct device_attribute *attr, char *buf) in dasd_expires_show()
1240 struct dasd_device *device; in dasd_expires_show() local
1243 device = dasd_device_from_cdev(to_ccwdev(dev)); in dasd_expires_show()
1244 if (IS_ERR(device)) in dasd_expires_show()
1246 len = snprintf(buf, PAGE_SIZE, "%lu\n", device->default_expires); in dasd_expires_show()
1247 dasd_put_device(device); in dasd_expires_show()
1252 dasd_expires_store(struct device *dev, struct device_attribute *attr, in dasd_expires_store()
1255 struct dasd_device *device; in dasd_expires_store() local
1258 device = dasd_device_from_cdev(to_ccwdev(dev)); in dasd_expires_store()
1259 if (IS_ERR(device)) in dasd_expires_store()
1264 dasd_put_device(device); in dasd_expires_store()
1269 device->default_expires = val; in dasd_expires_store()
1271 dasd_put_device(device); in dasd_expires_store()
1278 dasd_retries_show(struct device *dev, struct device_attribute *attr, char *buf) in dasd_retries_show()
1280 struct dasd_device *device; in dasd_retries_show() local
1283 device = dasd_device_from_cdev(to_ccwdev(dev)); in dasd_retries_show()
1284 if (IS_ERR(device)) in dasd_retries_show()
1286 len = snprintf(buf, PAGE_SIZE, "%lu\n", device->default_retries); in dasd_retries_show()
1287 dasd_put_device(device); in dasd_retries_show()
1292 dasd_retries_store(struct device *dev, struct device_attribute *attr, in dasd_retries_store()
1295 struct dasd_device *device; in dasd_retries_store() local
1298 device = dasd_device_from_cdev(to_ccwdev(dev)); in dasd_retries_store()
1299 if (IS_ERR(device)) in dasd_retries_store()
1304 dasd_put_device(device); in dasd_retries_store()
1309 device->default_retries = val; in dasd_retries_store()
1311 dasd_put_device(device); in dasd_retries_store()
1318 dasd_timeout_show(struct device *dev, struct device_attribute *attr, in dasd_timeout_show()
1321 struct dasd_device *device; in dasd_timeout_show() local
1324 device = dasd_device_from_cdev(to_ccwdev(dev)); in dasd_timeout_show()
1325 if (IS_ERR(device)) in dasd_timeout_show()
1327 len = snprintf(buf, PAGE_SIZE, "%lu\n", device->blk_timeout); in dasd_timeout_show()
1328 dasd_put_device(device); in dasd_timeout_show()
1333 dasd_timeout_store(struct device *dev, struct device_attribute *attr, in dasd_timeout_store()
1336 struct dasd_device *device; in dasd_timeout_store() local
1340 device = dasd_device_from_cdev(to_ccwdev(dev)); in dasd_timeout_store()
1341 if (IS_ERR(device) || !device->block) in dasd_timeout_store()
1346 dasd_put_device(device); in dasd_timeout_store()
1349 q = device->block->request_queue; in dasd_timeout_store()
1351 dasd_put_device(device); in dasd_timeout_store()
1355 device->blk_timeout = val; in dasd_timeout_store()
1357 blk_queue_rq_timeout(q, device->blk_timeout * HZ); in dasd_timeout_store()
1359 dasd_put_device(device); in dasd_timeout_store()
1368 dasd_path_reset_store(struct device *dev, struct device_attribute *attr, in dasd_path_reset_store()
1371 struct dasd_device *device; in dasd_path_reset_store() local
1374 device = dasd_device_from_cdev(to_ccwdev(dev)); in dasd_path_reset_store()
1375 if (IS_ERR(device)) in dasd_path_reset_store()
1381 if (device->discipline && device->discipline->reset_path) in dasd_path_reset_store()
1382 device->discipline->reset_path(device, (__u8) val); in dasd_path_reset_store()
1384 dasd_put_device(device); in dasd_path_reset_store()
1390 static ssize_t dasd_hpf_show(struct device *dev, struct device_attribute *attr, in dasd_hpf_show()
1393 struct dasd_device *device; in dasd_hpf_show() local
1396 device = dasd_device_from_cdev(to_ccwdev(dev)); in dasd_hpf_show()
1397 if (IS_ERR(device)) in dasd_hpf_show()
1399 if (!device->discipline || !device->discipline->hpf_enabled) { in dasd_hpf_show()
1400 dasd_put_device(device); in dasd_hpf_show()
1403 hpf = device->discipline->hpf_enabled(device); in dasd_hpf_show()
1404 dasd_put_device(device); in dasd_hpf_show()
1410 static ssize_t dasd_reservation_policy_show(struct device *dev, in dasd_reservation_policy_show()
1431 static ssize_t dasd_reservation_policy_store(struct device *dev, in dasd_reservation_policy_store()
1451 static ssize_t dasd_reservation_state_show(struct device *dev, in dasd_reservation_state_show()
1455 struct dasd_device *device; in dasd_reservation_state_show() local
1458 device = dasd_device_from_cdev(to_ccwdev(dev)); in dasd_reservation_state_show()
1459 if (IS_ERR(device)) in dasd_reservation_state_show()
1462 if (test_bit(DASD_FLAG_IS_RESERVED, &device->flags)) in dasd_reservation_state_show()
1464 else if (test_bit(DASD_FLAG_LOCK_STOLEN, &device->flags)) in dasd_reservation_state_show()
1468 dasd_put_device(device); in dasd_reservation_state_show()
1472 static ssize_t dasd_reservation_state_store(struct device *dev, in dasd_reservation_state_store()
1476 struct dasd_device *device; in dasd_reservation_state_store() local
1479 device = dasd_device_from_cdev(to_ccwdev(dev)); in dasd_reservation_state_store()
1480 if (IS_ERR(device)) in dasd_reservation_state_store()
1483 clear_bit(DASD_FLAG_LOCK_STOLEN, &device->flags); in dasd_reservation_state_store()
1486 dasd_put_device(device); in dasd_reservation_state_store()
1497 static ssize_t dasd_pm_show(struct device *dev, in dasd_pm_show()
1500 struct dasd_device *device; in dasd_pm_show() local
1503 device = dasd_device_from_cdev(to_ccwdev(dev)); in dasd_pm_show()
1504 if (IS_ERR(device)) in dasd_pm_show()
1507 opm = dasd_path_get_opm(device); in dasd_pm_show()
1508 nppm = dasd_path_get_nppm(device); in dasd_pm_show()
1509 cablepm = dasd_path_get_cablepm(device); in dasd_pm_show()
1510 cuirpm = dasd_path_get_cuirpm(device); in dasd_pm_show()
1511 hpfpm = dasd_path_get_hpfpm(device); in dasd_pm_show()
1512 ifccpm = dasd_path_get_ifccpm(device); in dasd_pm_show()
1513 dasd_put_device(device); in dasd_pm_show()
1525 dasd_path_threshold_show(struct device *dev, in dasd_path_threshold_show()
1528 struct dasd_device *device; in dasd_path_threshold_show() local
1531 device = dasd_device_from_cdev(to_ccwdev(dev)); in dasd_path_threshold_show()
1532 if (IS_ERR(device)) in dasd_path_threshold_show()
1534 len = snprintf(buf, PAGE_SIZE, "%lu\n", device->path_thrhld); in dasd_path_threshold_show()
1535 dasd_put_device(device); in dasd_path_threshold_show()
1540 dasd_path_threshold_store(struct device *dev, struct device_attribute *attr, in dasd_path_threshold_store()
1543 struct dasd_device *device; in dasd_path_threshold_store() local
1547 device = dasd_device_from_cdev(to_ccwdev(dev)); in dasd_path_threshold_store()
1548 if (IS_ERR(device)) in dasd_path_threshold_store()
1552 dasd_put_device(device); in dasd_path_threshold_store()
1556 device->path_thrhld = val; in dasd_path_threshold_store()
1558 dasd_put_device(device); in dasd_path_threshold_store()
1569 dasd_path_autodisable_show(struct device *dev, in dasd_path_autodisable_show()
1585 dasd_path_autodisable_store(struct device *dev, in dasd_path_autodisable_store()
1610 dasd_path_interval_show(struct device *dev, in dasd_path_interval_show()
1613 struct dasd_device *device; in dasd_path_interval_show() local
1616 device = dasd_device_from_cdev(to_ccwdev(dev)); in dasd_path_interval_show()
1617 if (IS_ERR(device)) in dasd_path_interval_show()
1619 len = snprintf(buf, PAGE_SIZE, "%lu\n", device->path_interval); in dasd_path_interval_show()
1620 dasd_put_device(device); in dasd_path_interval_show()
1625 dasd_path_interval_store(struct device *dev, struct device_attribute *attr, in dasd_path_interval_store()
1628 struct dasd_device *device; in dasd_path_interval_store() local
1632 device = dasd_device_from_cdev(to_ccwdev(dev)); in dasd_path_interval_store()
1633 if (IS_ERR(device)) in dasd_path_interval_store()
1638 dasd_put_device(device); in dasd_path_interval_store()
1643 device->path_interval = val; in dasd_path_interval_store()
1645 dasd_put_device(device); in dasd_path_interval_store()
1653 dasd_device_fcs_show(struct device *dev, struct device_attribute *attr, in dasd_device_fcs_show()
1656 struct dasd_device *device; in dasd_device_fcs_show() local
1660 device = dasd_device_from_cdev(to_ccwdev(dev)); in dasd_device_fcs_show()
1661 if (IS_ERR(device)) in dasd_device_fcs_show()
1663 fc_sec = dasd_path_get_fcs_device(device); in dasd_device_fcs_show()
1668 dasd_put_device(device); in dasd_device_fcs_show()
1687 static ssize_t dasd_##_name##_show(struct device *dev, \
1692 struct dasd_device *device = dasd_device_from_cdev(cdev); \
1695 if (IS_ERR(device)) \
1697 if (device->discipline && _func) \
1698 val = _func(device); \
1699 dasd_put_device(device); \
1705 DASD_DEFINE_ATTR(ese, device->discipline->is_ese);
1706 DASD_DEFINE_ATTR(extent_size, device->discipline->ext_size);
1707 DASD_DEFINE_ATTR(pool_id, device->discipline->ext_pool_id);
1708 DASD_DEFINE_ATTR(space_configured, device->discipline->space_configured);
1709 DASD_DEFINE_ATTR(space_allocated, device->discipline->space_allocated);
1710 DASD_DEFINE_ATTR(logical_capacity, device->discipline->logical_capacity);
1711 DASD_DEFINE_ATTR(warn_threshold, device->discipline->ext_pool_warn_thrshld);
1712 DASD_DEFINE_ATTR(cap_at_warnlevel, device->discipline->ext_pool_cap_at_warnlevel);
1713 DASD_DEFINE_ATTR(pool_oos, device->discipline->ext_pool_oos);
1816 if (devmap->device) in dasd_set_feature()
1817 devmap->device->features = devmap->features; in dasd_set_feature()
1834 static void dasd_path_init_kobj(struct dasd_device *device, int chp) in dasd_path_init_kobj() argument
1836 device->path[chp].kobj.kset = device->paths_info; in dasd_path_init_kobj()
1837 kobject_init(&device->path[chp].kobj, &path_attr_type); in dasd_path_init_kobj()
1840 void dasd_path_create_kobj(struct dasd_device *device, int chp) in dasd_path_create_kobj() argument
1844 if (test_bit(DASD_FLAG_OFFLINE, &device->flags)) in dasd_path_create_kobj()
1846 if (!device->paths_info) { in dasd_path_create_kobj()
1847 dev_warn(&device->cdev->dev, "Unable to create paths objects\n"); in dasd_path_create_kobj()
1850 if (device->path[chp].in_sysfs) in dasd_path_create_kobj()
1852 if (!device->path[chp].conf_data) in dasd_path_create_kobj()
1855 dasd_path_init_kobj(device, chp); in dasd_path_create_kobj()
1857 rc = kobject_add(&device->path[chp].kobj, NULL, "%x.%02x", in dasd_path_create_kobj()
1858 device->path[chp].cssid, device->path[chp].chpid); in dasd_path_create_kobj()
1860 kobject_put(&device->path[chp].kobj); in dasd_path_create_kobj()
1861 device->path[chp].in_sysfs = true; in dasd_path_create_kobj()
1865 void dasd_path_create_kobjects(struct dasd_device *device) in dasd_path_create_kobjects() argument
1869 opm = dasd_path_get_opm(device); in dasd_path_create_kobjects()
1873 dasd_path_create_kobj(device, pathmask_to_pos(lpm)); in dasd_path_create_kobjects()
1878 static void dasd_path_remove_kobj(struct dasd_device *device, int chp) in dasd_path_remove_kobj() argument
1880 if (device->path[chp].in_sysfs) { in dasd_path_remove_kobj()
1881 kobject_put(&device->path[chp].kobj); in dasd_path_remove_kobj()
1882 device->path[chp].in_sysfs = false; in dasd_path_remove_kobj()
1887 * As we keep kobjects for the lifetime of a device, this function must not be
1888 * called anywhere but in the context of offlining a device.
1890 void dasd_path_remove_kobjects(struct dasd_device *device) in dasd_path_remove_kobjects() argument
1895 dasd_path_remove_kobj(device, i); in dasd_path_remove_kobjects()