Lines Matching full:sdev

234 /* DEVICE_ATTR(state) clashes with dev_attr_state for sdev */
438 struct scsi_device *sdev; in scsi_device_cls_release() local
440 sdev = class_to_sdev(class_dev); in scsi_device_cls_release()
441 put_device(&sdev->sdev_gendev); in scsi_device_cls_release()
446 struct scsi_device *sdev = to_scsi_device(dev); in scsi_device_dev_release() local
457 scsi_dh_release_device(sdev); in scsi_device_dev_release()
459 parent = sdev->sdev_gendev.parent; in scsi_device_dev_release()
461 spin_lock_irqsave(sdev->host->host_lock, flags); in scsi_device_dev_release()
462 list_del(&sdev->siblings); in scsi_device_dev_release()
463 list_del(&sdev->same_target_siblings); in scsi_device_dev_release()
464 list_del(&sdev->starved_entry); in scsi_device_dev_release()
465 spin_unlock_irqrestore(sdev->host->host_lock, flags); in scsi_device_dev_release()
467 cancel_work_sync(&sdev->event_work); in scsi_device_dev_release()
469 list_for_each_safe(this, tmp, &sdev->event_list) { in scsi_device_dev_release()
477 blk_put_queue(sdev->request_queue); in scsi_device_dev_release()
479 sdev->request_queue = NULL; in scsi_device_dev_release()
481 sbitmap_free(&sdev->budget_map); in scsi_device_dev_release()
483 mutex_lock(&sdev->inquiry_mutex); in scsi_device_dev_release()
484 vpd_pg0 = rcu_replace_pointer(sdev->vpd_pg0, vpd_pg0, in scsi_device_dev_release()
485 lockdep_is_held(&sdev->inquiry_mutex)); in scsi_device_dev_release()
486 vpd_pg80 = rcu_replace_pointer(sdev->vpd_pg80, vpd_pg80, in scsi_device_dev_release()
487 lockdep_is_held(&sdev->inquiry_mutex)); in scsi_device_dev_release()
488 vpd_pg83 = rcu_replace_pointer(sdev->vpd_pg83, vpd_pg83, in scsi_device_dev_release()
489 lockdep_is_held(&sdev->inquiry_mutex)); in scsi_device_dev_release()
490 vpd_pg89 = rcu_replace_pointer(sdev->vpd_pg89, vpd_pg89, in scsi_device_dev_release()
491 lockdep_is_held(&sdev->inquiry_mutex)); in scsi_device_dev_release()
492 vpd_pgb0 = rcu_replace_pointer(sdev->vpd_pgb0, vpd_pgb0, in scsi_device_dev_release()
493 lockdep_is_held(&sdev->inquiry_mutex)); in scsi_device_dev_release()
494 vpd_pgb1 = rcu_replace_pointer(sdev->vpd_pgb1, vpd_pgb1, in scsi_device_dev_release()
495 lockdep_is_held(&sdev->inquiry_mutex)); in scsi_device_dev_release()
496 vpd_pgb2 = rcu_replace_pointer(sdev->vpd_pgb2, vpd_pgb2, in scsi_device_dev_release()
497 lockdep_is_held(&sdev->inquiry_mutex)); in scsi_device_dev_release()
498 vpd_pgb7 = rcu_replace_pointer(sdev->vpd_pgb7, vpd_pgb7, in scsi_device_dev_release()
499 lockdep_is_held(&sdev->inquiry_mutex)); in scsi_device_dev_release()
500 mutex_unlock(&sdev->inquiry_mutex); in scsi_device_dev_release()
518 kfree(sdev->inquiry); in scsi_device_dev_release()
519 kfree(sdev); in scsi_device_dev_release()
546 const struct scsi_device *sdev; in scsi_bus_uevent() local
551 sdev = to_scsi_device(dev); in scsi_bus_uevent()
553 add_uevent_var(env, "MODALIAS=" SCSI_DEVICE_MODALIAS_FMT, sdev->type); in scsi_bus_uevent()
595 struct scsi_device *sdev; \
596 sdev = to_scsi_device(dev); \
597 return snprintf (buf, 20, format_string, sdev->field); \
622 struct scsi_device *sdev = to_scsi_device(dev); in sdev_show_device_busy() local
623 return snprintf(buf, 20, "%d\n", scsi_device_busy(sdev)); in sdev_show_device_busy()
631 struct scsi_device *sdev = to_scsi_device(dev); in sdev_show_device_blocked() local
632 return snprintf(buf, 20, "%d\n", atomic_read(&sdev->device_blocked)); in sdev_show_device_blocked()
642 struct scsi_device *sdev; in sdev_show_timeout() local
643 sdev = to_scsi_device(dev); in sdev_show_timeout()
644 return snprintf(buf, 20, "%d\n", sdev->request_queue->rq_timeout / HZ); in sdev_show_timeout()
651 struct scsi_device *sdev = to_scsi_device(dev); in sdev_store_timeout() local
659 blk_queue_rq_timeout(sdev->request_queue, timeout * HZ); in sdev_store_timeout()
667 struct scsi_device *sdev; in sdev_show_eh_timeout() local
668 sdev = to_scsi_device(dev); in sdev_show_eh_timeout()
669 return snprintf(buf, 20, "%u\n", sdev->eh_timeout / HZ); in sdev_show_eh_timeout()
676 struct scsi_device *sdev; in sdev_store_eh_timeout() local
683 sdev = to_scsi_device(dev); in sdev_store_eh_timeout()
687 sdev->eh_timeout = eh_timeout * HZ; in sdev_store_eh_timeout()
707 struct scsi_device *sdev = to_scsi_device(dev); in sdev_store_delete() local
713 if (scsi_device_get(sdev)) in sdev_store_delete()
729 scsi_remove_device(sdev); in sdev_store_delete()
732 scsi_device_put(sdev); in sdev_store_delete()
742 struct scsi_device *sdev = to_scsi_device(dev); in store_state_field() local
762 mutex_lock(&sdev->state_mutex); in store_state_field()
763 switch (sdev->sdev_state) { in store_state_field()
768 mutex_unlock(&sdev->state_mutex); in store_state_field()
771 if (sdev->sdev_state == SDEV_RUNNING && state == SDEV_RUNNING) { in store_state_field()
774 ret = scsi_device_set_state(sdev, state); in store_state_field()
778 mutex_unlock(&sdev->state_mutex); in store_state_field()
789 blk_mq_run_hw_queues(sdev->request_queue, true); in store_state_field()
790 scsi_rescan_device(sdev); in store_state_field()
799 struct scsi_device *sdev = to_scsi_device(dev); in show_state_field() local
800 const char *name = scsi_device_state_name(sdev->sdev_state); in show_state_field()
814 struct scsi_device *sdev = to_scsi_device(dev); in show_queue_type_field() local
817 if (sdev->simple_tags) in show_queue_type_field()
827 struct scsi_device *sdev = to_scsi_device(dev); in store_queue_type_field() local
829 if (!sdev->tagged_supported) in store_queue_type_field()
832 sdev_printk(KERN_INFO, sdev, in store_queue_type_field()
847 struct scsi_device *sdev = to_scsi_device(dev); \
852 vpd_page = rcu_dereference(sdev->vpd_##_page); \
879 struct scsi_device *sdev = to_scsi_device(dev); in show_inquiry() local
881 if (!sdev->inquiry) in show_inquiry()
884 return memory_read_from_buffer(buf, count, &off, sdev->inquiry, in show_inquiry()
885 sdev->inquiry_len); in show_inquiry()
911 struct scsi_device *sdev = to_scsi_device(dev); \
912 unsigned long long count = atomic_read(&sdev->field); \
925 struct scsi_device *sdev; in sdev_show_modalias() local
926 sdev = to_scsi_device(dev); in sdev_show_modalias()
927 return snprintf (buf, 20, SCSI_DEVICE_MODALIAS_FMT "\n", sdev->type); in sdev_show_modalias()
936 struct scsi_device *sdev = to_scsi_device(dev); \
937 int val = test_bit(SDEV_EVT_##Cap_name, sdev->supported_events);\
946 struct scsi_device *sdev = to_scsi_device(dev); \
949 clear_bit(SDEV_EVT_##Cap_name, sdev->supported_events); \
951 set_bit(SDEV_EVT_##Cap_name, sdev->supported_events); \
976 struct scsi_device *sdev = to_scsi_device(dev); in DECLARE_EVT() local
977 const struct scsi_host_template *sht = sdev->host->hostt; in DECLARE_EVT()
984 if (depth < 1 || depth > sdev->host->can_queue) in DECLARE_EVT()
987 retval = sht->change_queue_depth(sdev, depth); in DECLARE_EVT()
991 sdev->max_queue_depth = sdev->queue_depth; in DECLARE_EVT()
1004 struct scsi_device *sdev = to_scsi_device(dev); in sdev_show_wwid() local
1007 count = scsi_vpd_lun_id(sdev, buf, PAGE_SIZE); in sdev_show_wwid()
1027 struct scsi_device *sdev = to_scsi_device(dev); in sdev_show_blacklist() local
1031 for (i = 0; i < sizeof(sdev->sdev_bflags) * BITS_PER_BYTE; i++) { in sdev_show_blacklist()
1034 if (!(sdev->sdev_bflags & (__force blist_flags_t)BIT(i))) in sdev_show_blacklist()
1057 struct scsi_device *sdev = to_scsi_device(dev); in sdev_show_dh_state() local
1059 if (!sdev->handler) in sdev_show_dh_state()
1062 return snprintf(buf, 20, "%s\n", sdev->handler->name); in sdev_show_dh_state()
1069 struct scsi_device *sdev = to_scsi_device(dev); in sdev_store_dh_state() local
1072 if (sdev->sdev_state == SDEV_CANCEL || in sdev_store_dh_state()
1073 sdev->sdev_state == SDEV_DEL) in sdev_store_dh_state()
1076 if (!sdev->handler) { in sdev_store_dh_state()
1080 err = scsi_dh_attach(sdev->request_queue, buf); in sdev_store_dh_state()
1085 if (sdev->handler->activate) in sdev_store_dh_state()
1086 err = sdev->handler->activate(sdev, NULL, NULL); in sdev_store_dh_state()
1093 sdev_printk(KERN_WARNING, sdev, in sdev_store_dh_state()
1095 sdev->handler->name); in sdev_store_dh_state()
1110 struct scsi_device *sdev = to_scsi_device(dev); in sdev_show_access_state() local
1114 if (!sdev->handler) in sdev_show_access_state()
1117 access_state = (sdev->access_state & SCSI_ACCESS_STATE_MASK); in sdev_show_access_state()
1130 struct scsi_device *sdev = to_scsi_device(dev); in sdev_show_preferred_path() local
1132 if (!sdev->handler) in sdev_show_preferred_path()
1135 if (sdev->access_state & SCSI_ACCESS_STATE_PREFERRED) in sdev_show_preferred_path()
1148 struct scsi_device *sdev; in sdev_show_queue_ramp_up_period() local
1149 sdev = to_scsi_device(dev); in sdev_show_queue_ramp_up_period()
1151 jiffies_to_msecs(sdev->queue_ramp_up_period)); in sdev_show_queue_ramp_up_period()
1159 struct scsi_device *sdev = to_scsi_device(dev); in sdev_store_queue_ramp_up_period() local
1165 sdev->queue_ramp_up_period = msecs_to_jiffies(period); in sdev_store_queue_ramp_up_period()
1176 struct scsi_device *sdev = to_scsi_device(dev); in sdev_show_cdl_enable() local
1178 return sysfs_emit(buf, "%d\n", (int)sdev->cdl_enable); in sdev_show_cdl_enable()
1204 struct scsi_device *sdev = to_scsi_device(dev); in scsi_sdev_attr_is_visible() local
1208 !sdev->host->hostt->change_queue_depth) in scsi_sdev_attr_is_visible()
1212 !sdev->host->hostt->change_queue_depth) in scsi_sdev_attr_is_visible()
1222 struct scsi_device *sdev = to_scsi_device(dev); in scsi_sdev_bin_attr_is_visible() local
1225 if (attr == &dev_attr_vpd_pg0 && !sdev->vpd_pg0) in scsi_sdev_bin_attr_is_visible()
1228 if (attr == &dev_attr_vpd_pg80 && !sdev->vpd_pg80) in scsi_sdev_bin_attr_is_visible()
1231 if (attr == &dev_attr_vpd_pg83 && !sdev->vpd_pg83) in scsi_sdev_bin_attr_is_visible()
1234 if (attr == &dev_attr_vpd_pg89 && !sdev->vpd_pg89) in scsi_sdev_bin_attr_is_visible()
1237 if (attr == &dev_attr_vpd_pgb0 && !sdev->vpd_pgb0) in scsi_sdev_bin_attr_is_visible()
1240 if (attr == &dev_attr_vpd_pgb1 && !sdev->vpd_pgb1) in scsi_sdev_bin_attr_is_visible()
1243 if (attr == &dev_attr_vpd_pgb2 && !sdev->vpd_pgb2) in scsi_sdev_bin_attr_is_visible()
1246 if (attr == &dev_attr_vpd_pgb7 && !sdev->vpd_pgb7) in scsi_sdev_bin_attr_is_visible()
1341 * @sdev: scsi_device to add
1346 int scsi_sysfs_add_sdev(struct scsi_device *sdev) in scsi_sysfs_add_sdev() argument
1349 struct scsi_target *starget = sdev->sdev_target; in scsi_sysfs_add_sdev()
1351 if (WARN_ON_ONCE(scsi_device_is_pseudo_dev(sdev))) in scsi_sysfs_add_sdev()
1360 device_enable_async_suspend(&sdev->sdev_gendev); in scsi_sysfs_add_sdev()
1362 pm_runtime_set_active(&sdev->sdev_gendev); in scsi_sysfs_add_sdev()
1363 if (!sdev->rpm_autosuspend) in scsi_sysfs_add_sdev()
1364 pm_runtime_forbid(&sdev->sdev_gendev); in scsi_sysfs_add_sdev()
1365 pm_runtime_enable(&sdev->sdev_gendev); in scsi_sysfs_add_sdev()
1368 scsi_autopm_get_device(sdev); in scsi_sysfs_add_sdev()
1370 scsi_dh_add_device(sdev); in scsi_sysfs_add_sdev()
1372 error = device_add(&sdev->sdev_gendev); in scsi_sysfs_add_sdev()
1374 sdev_printk(KERN_INFO, sdev, in scsi_sysfs_add_sdev()
1379 device_enable_async_suspend(&sdev->sdev_dev); in scsi_sysfs_add_sdev()
1380 error = device_add(&sdev->sdev_dev); in scsi_sysfs_add_sdev()
1382 sdev_printk(KERN_INFO, sdev, in scsi_sysfs_add_sdev()
1384 device_del(&sdev->sdev_gendev); in scsi_sysfs_add_sdev()
1387 transport_add_device(&sdev->sdev_gendev); in scsi_sysfs_add_sdev()
1388 sdev->is_visible = 1; in scsi_sysfs_add_sdev()
1391 sdev->bsg_dev = scsi_bsg_register_queue(sdev); in scsi_sysfs_add_sdev()
1392 if (IS_ERR(sdev->bsg_dev)) { in scsi_sysfs_add_sdev()
1393 error = PTR_ERR(sdev->bsg_dev); in scsi_sysfs_add_sdev()
1394 sdev_printk(KERN_INFO, sdev, in scsi_sysfs_add_sdev()
1397 sdev->bsg_dev = NULL; in scsi_sysfs_add_sdev()
1401 scsi_autopm_put_device(sdev); in scsi_sysfs_add_sdev()
1405 void __scsi_remove_device(struct scsi_device *sdev) in __scsi_remove_device() argument
1407 struct device *dev = &sdev->sdev_gendev; in __scsi_remove_device()
1415 if (sdev->sdev_state == SDEV_DEL) in __scsi_remove_device()
1418 if (sdev->is_visible) { in __scsi_remove_device()
1423 mutex_lock(&sdev->state_mutex); in __scsi_remove_device()
1429 res = scsi_device_set_state(sdev, SDEV_CANCEL); in __scsi_remove_device()
1431 res = scsi_device_set_state(sdev, SDEV_DEL); in __scsi_remove_device()
1433 scsi_start_queue(sdev); in __scsi_remove_device()
1435 mutex_unlock(&sdev->state_mutex); in __scsi_remove_device()
1440 if (IS_ENABLED(CONFIG_BLK_DEV_BSG) && sdev->bsg_dev) in __scsi_remove_device()
1441 bsg_unregister_queue(sdev->bsg_dev); in __scsi_remove_device()
1442 device_unregister(&sdev->sdev_dev); in __scsi_remove_device()
1446 put_device(&sdev->sdev_dev); in __scsi_remove_device()
1453 mutex_lock(&sdev->state_mutex); in __scsi_remove_device()
1454 scsi_device_set_state(sdev, SDEV_DEL); in __scsi_remove_device()
1455 mutex_unlock(&sdev->state_mutex); in __scsi_remove_device()
1457 blk_mq_destroy_queue(sdev->request_queue); in __scsi_remove_device()
1458 kref_put(&sdev->host->tagset_refcnt, scsi_mq_free_tags); in __scsi_remove_device()
1459 cancel_work_sync(&sdev->requeue_work); in __scsi_remove_device()
1461 if (!scsi_device_is_pseudo_dev(sdev) && sdev->host->hostt->sdev_destroy) in __scsi_remove_device()
1462 sdev->host->hostt->sdev_destroy(sdev); in __scsi_remove_device()
1470 scsi_target_reap(scsi_target(sdev)); in __scsi_remove_device()
1477 * @sdev: scsi_device to unregister
1479 void scsi_remove_device(struct scsi_device *sdev) in scsi_remove_device() argument
1481 struct Scsi_Host *shost = sdev->host; in scsi_remove_device()
1484 __scsi_remove_device(sdev); in scsi_remove_device()
1493 struct scsi_device *sdev; in __scsi_remove_target() local
1497 list_for_each_entry(sdev, &shost->__devices, siblings) { in __scsi_remove_target()
1504 if (sdev->channel != starget->channel || in __scsi_remove_target()
1505 sdev->id != starget->id) in __scsi_remove_target()
1507 if (sdev->sdev_state == SDEV_DEL || in __scsi_remove_target()
1508 sdev->sdev_state == SDEV_CANCEL || in __scsi_remove_target()
1509 !get_device(&sdev->sdev_gendev)) in __scsi_remove_target()
1512 scsi_remove_device(sdev); in __scsi_remove_target()
1513 put_device(&sdev->sdev_gendev); in __scsi_remove_target()
1591 void scsi_sysfs_device_initialize(struct scsi_device *sdev) in scsi_sysfs_device_initialize() argument
1594 struct Scsi_Host *shost = sdev->host; in scsi_sysfs_device_initialize()
1596 struct scsi_target *starget = sdev->sdev_target; in scsi_sysfs_device_initialize()
1598 device_initialize(&sdev->sdev_gendev); in scsi_sysfs_device_initialize()
1599 sdev->sdev_gendev.bus = &scsi_bus_type; in scsi_sysfs_device_initialize()
1600 sdev->sdev_gendev.type = &scsi_dev_type; in scsi_sysfs_device_initialize()
1601 scsi_enable_async_suspend(&sdev->sdev_gendev); in scsi_sysfs_device_initialize()
1602 dev_set_name(&sdev->sdev_gendev, "%d:%d:%d:%llu", in scsi_sysfs_device_initialize()
1603 sdev->host->host_no, sdev->channel, sdev->id, sdev->lun); in scsi_sysfs_device_initialize()
1604 sdev->sdev_gendev.groups = hostt->sdev_groups; in scsi_sysfs_device_initialize()
1606 device_initialize(&sdev->sdev_dev); in scsi_sysfs_device_initialize()
1607 sdev->sdev_dev.parent = get_device(&sdev->sdev_gendev); in scsi_sysfs_device_initialize()
1608 sdev->sdev_dev.class = &sdev_class; in scsi_sysfs_device_initialize()
1609 dev_set_name(&sdev->sdev_dev, "%d:%d:%d:%llu", in scsi_sysfs_device_initialize()
1610 sdev->host->host_no, sdev->channel, sdev->id, sdev->lun); in scsi_sysfs_device_initialize()
1614 * sdev->lun_in_cdb for the initial INQUIRY command. For LUN 0 the in scsi_sysfs_device_initialize()
1618 sdev->scsi_level = starget->scsi_level; in scsi_sysfs_device_initialize()
1619 if (sdev->scsi_level <= SCSI_2 && in scsi_sysfs_device_initialize()
1620 sdev->scsi_level != SCSI_UNKNOWN && in scsi_sysfs_device_initialize()
1622 sdev->lun_in_cdb = 1; in scsi_sysfs_device_initialize()
1624 transport_setup_device(&sdev->sdev_gendev); in scsi_sysfs_device_initialize()
1626 list_add_tail(&sdev->same_target_siblings, &starget->devices); in scsi_sysfs_device_initialize()
1627 list_add_tail(&sdev->siblings, &shost->__devices); in scsi_sysfs_device_initialize()