Lines Matching refs:sdev

387 	struct scsi_device *sdev;  in scsi_device_cls_release()  local
389 sdev = class_to_sdev(class_dev); in scsi_device_cls_release()
390 put_device(&sdev->sdev_gendev); in scsi_device_cls_release()
395 struct scsi_device *sdev; in scsi_device_dev_release_usercontext() local
400 sdev = container_of(work, struct scsi_device, ew.work); in scsi_device_dev_release_usercontext()
402 scsi_dh_release_device(sdev); in scsi_device_dev_release_usercontext()
404 parent = sdev->sdev_gendev.parent; in scsi_device_dev_release_usercontext()
406 spin_lock_irqsave(sdev->host->host_lock, flags); in scsi_device_dev_release_usercontext()
407 list_del(&sdev->siblings); in scsi_device_dev_release_usercontext()
408 list_del(&sdev->same_target_siblings); in scsi_device_dev_release_usercontext()
409 list_del(&sdev->starved_entry); in scsi_device_dev_release_usercontext()
410 spin_unlock_irqrestore(sdev->host->host_lock, flags); in scsi_device_dev_release_usercontext()
412 cancel_work_sync(&sdev->event_work); in scsi_device_dev_release_usercontext()
414 list_for_each_safe(this, tmp, &sdev->event_list) { in scsi_device_dev_release_usercontext()
422 blk_put_queue(sdev->request_queue); in scsi_device_dev_release_usercontext()
424 sdev->request_queue = NULL; in scsi_device_dev_release_usercontext()
426 kfree(sdev->vpd_pg83); in scsi_device_dev_release_usercontext()
427 kfree(sdev->vpd_pg80); in scsi_device_dev_release_usercontext()
428 kfree(sdev->inquiry); in scsi_device_dev_release_usercontext()
429 kfree(sdev); in scsi_device_dev_release_usercontext()
463 struct scsi_device *sdev; in scsi_bus_uevent() local
468 sdev = to_scsi_device(dev); in scsi_bus_uevent()
470 add_uevent_var(env, "MODALIAS=" SCSI_DEVICE_MODALIAS_FMT, sdev->type); in scsi_bus_uevent()
513 struct scsi_device *sdev; \
514 sdev = to_scsi_device(dev); \
515 return snprintf (buf, 20, format_string, sdev->field); \
538 struct scsi_device *sdev; \
539 sdev = to_scsi_device(dev); \
540 sscanf (buf, format_string, &sdev->field); \
560 struct scsi_device *sdev; \
563 sdev = to_scsi_device(dev); \
564 sdev->field = ret; \
601 struct scsi_device *sdev = to_scsi_device(dev); in sdev_show_device_busy() local
602 return snprintf(buf, 20, "%d\n", atomic_read(&sdev->device_busy)); in sdev_show_device_busy()
610 struct scsi_device *sdev = to_scsi_device(dev); in sdev_show_device_blocked() local
611 return snprintf(buf, 20, "%d\n", atomic_read(&sdev->device_blocked)); in sdev_show_device_blocked()
621 struct scsi_device *sdev; in sdev_show_timeout() local
622 sdev = to_scsi_device(dev); in sdev_show_timeout()
623 return snprintf(buf, 20, "%d\n", sdev->request_queue->rq_timeout / HZ); in sdev_show_timeout()
630 struct scsi_device *sdev; in sdev_store_timeout() local
632 sdev = to_scsi_device(dev); in sdev_store_timeout()
634 blk_queue_rq_timeout(sdev->request_queue, timeout * HZ); in sdev_store_timeout()
642 struct scsi_device *sdev; in sdev_show_eh_timeout() local
643 sdev = to_scsi_device(dev); in sdev_show_eh_timeout()
644 return snprintf(buf, 20, "%u\n", sdev->eh_timeout / HZ); in sdev_show_eh_timeout()
651 struct scsi_device *sdev; in sdev_store_eh_timeout() local
658 sdev = to_scsi_device(dev); in sdev_store_eh_timeout()
662 sdev->eh_timeout = eh_timeout * HZ; in sdev_store_eh_timeout()
692 struct scsi_device *sdev = to_scsi_device(dev); in store_state_field() local
706 if (scsi_device_set_state(sdev, state)) in store_state_field()
714 struct scsi_device *sdev = to_scsi_device(dev); in show_state_field() local
715 const char *name = scsi_device_state_name(sdev->sdev_state); in show_state_field()
729 struct scsi_device *sdev = to_scsi_device(dev); in show_queue_type_field() local
732 if (sdev->simple_tags) in show_queue_type_field()
742 struct scsi_device *sdev = to_scsi_device(dev); in store_queue_type_field() local
744 if (!sdev->tagged_supported) in store_queue_type_field()
747 sdev_printk(KERN_INFO, sdev, in store_queue_type_field()
762 struct scsi_device *sdev = to_scsi_device(dev); \
763 if (!sdev->vpd_##_page) \
766 sdev->vpd_##_page, \
767 sdev->vpd_##_page##_len); \
783 struct scsi_device *sdev = to_scsi_device(dev); in show_inquiry() local
785 if (!sdev->inquiry) in show_inquiry()
788 return memory_read_from_buffer(buf, count, &off, sdev->inquiry, in show_inquiry()
789 sdev->inquiry_len); in show_inquiry()
815 struct scsi_device *sdev = to_scsi_device(dev); \
816 unsigned long long count = atomic_read(&sdev->field); \
828 struct scsi_device *sdev; in sdev_show_modalias() local
829 sdev = to_scsi_device(dev); in sdev_show_modalias()
830 return snprintf (buf, 20, SCSI_DEVICE_MODALIAS_FMT "\n", sdev->type); in sdev_show_modalias()
839 struct scsi_device *sdev = to_scsi_device(dev); \
840 int val = test_bit(SDEV_EVT_##Cap_name, sdev->supported_events);\
849 struct scsi_device *sdev = to_scsi_device(dev); \
852 clear_bit(SDEV_EVT_##Cap_name, sdev->supported_events); \
854 set_bit(SDEV_EVT_##Cap_name, sdev->supported_events); \
879 struct scsi_device *sdev = to_scsi_device(dev); in DECLARE_EVT() local
880 struct scsi_host_template *sht = sdev->host->hostt; in DECLARE_EVT()
887 if (depth < 1 || depth > sdev->host->can_queue) in DECLARE_EVT()
890 retval = sht->change_queue_depth(sdev, depth); in DECLARE_EVT()
894 sdev->max_queue_depth = sdev->queue_depth; in DECLARE_EVT()
908 struct scsi_device *sdev; in sdev_show_queue_ramp_up_period() local
909 sdev = to_scsi_device(dev); in sdev_show_queue_ramp_up_period()
911 jiffies_to_msecs(sdev->queue_ramp_up_period)); in sdev_show_queue_ramp_up_period()
919 struct scsi_device *sdev = to_scsi_device(dev); in sdev_store_queue_ramp_up_period() local
925 sdev->queue_ramp_up_period = msecs_to_jiffies(period); in sdev_store_queue_ramp_up_period()
937 struct scsi_device *sdev = to_scsi_device(dev); in scsi_sdev_attr_is_visible() local
941 !sdev->host->hostt->change_queue_depth) in scsi_sdev_attr_is_visible()
945 !sdev->host->hostt->change_queue_depth) in scsi_sdev_attr_is_visible()
1028 int scsi_sysfs_add_sdev(struct scsi_device *sdev) in scsi_sysfs_add_sdev() argument
1031 struct request_queue *rq = sdev->request_queue; in scsi_sysfs_add_sdev()
1032 struct scsi_target *starget = sdev->sdev_target; in scsi_sysfs_add_sdev()
1034 error = scsi_device_set_state(sdev, SDEV_RUNNING); in scsi_sysfs_add_sdev()
1044 device_enable_async_suspend(&sdev->sdev_gendev); in scsi_sysfs_add_sdev()
1046 pm_runtime_set_active(&sdev->sdev_gendev); in scsi_sysfs_add_sdev()
1047 pm_runtime_forbid(&sdev->sdev_gendev); in scsi_sysfs_add_sdev()
1048 pm_runtime_enable(&sdev->sdev_gendev); in scsi_sysfs_add_sdev()
1051 scsi_autopm_get_device(sdev); in scsi_sysfs_add_sdev()
1053 error = device_add(&sdev->sdev_gendev); in scsi_sysfs_add_sdev()
1055 sdev_printk(KERN_INFO, sdev, in scsi_sysfs_add_sdev()
1060 error = scsi_dh_add_device(sdev); in scsi_sysfs_add_sdev()
1062 sdev_printk(KERN_INFO, sdev, in scsi_sysfs_add_sdev()
1067 device_enable_async_suspend(&sdev->sdev_dev); in scsi_sysfs_add_sdev()
1068 error = device_add(&sdev->sdev_dev); in scsi_sysfs_add_sdev()
1070 sdev_printk(KERN_INFO, sdev, in scsi_sysfs_add_sdev()
1072 scsi_dh_remove_device(sdev); in scsi_sysfs_add_sdev()
1073 device_del(&sdev->sdev_gendev); in scsi_sysfs_add_sdev()
1076 transport_add_device(&sdev->sdev_gendev); in scsi_sysfs_add_sdev()
1077 sdev->is_visible = 1; in scsi_sysfs_add_sdev()
1079 error = bsg_register_queue(rq, &sdev->sdev_gendev, NULL, NULL); in scsi_sysfs_add_sdev()
1084 sdev_printk(KERN_INFO, sdev, in scsi_sysfs_add_sdev()
1088 if (sdev->host->hostt->sdev_attrs) { in scsi_sysfs_add_sdev()
1089 for (i = 0; sdev->host->hostt->sdev_attrs[i]; i++) { in scsi_sysfs_add_sdev()
1090 error = device_create_file(&sdev->sdev_gendev, in scsi_sysfs_add_sdev()
1091 sdev->host->hostt->sdev_attrs[i]); in scsi_sysfs_add_sdev()
1097 scsi_autopm_put_device(sdev); in scsi_sysfs_add_sdev()
1101 void __scsi_remove_device(struct scsi_device *sdev) in __scsi_remove_device() argument
1103 struct device *dev = &sdev->sdev_gendev; in __scsi_remove_device()
1110 if (sdev->sdev_state == SDEV_DEL) in __scsi_remove_device()
1113 if (sdev->is_visible) { in __scsi_remove_device()
1114 if (scsi_device_set_state(sdev, SDEV_CANCEL) != 0) in __scsi_remove_device()
1117 bsg_unregister_queue(sdev->request_queue); in __scsi_remove_device()
1118 device_unregister(&sdev->sdev_dev); in __scsi_remove_device()
1120 scsi_dh_remove_device(sdev); in __scsi_remove_device()
1123 put_device(&sdev->sdev_dev); in __scsi_remove_device()
1130 scsi_device_set_state(sdev, SDEV_DEL); in __scsi_remove_device()
1131 blk_cleanup_queue(sdev->request_queue); in __scsi_remove_device()
1132 cancel_work_sync(&sdev->requeue_work); in __scsi_remove_device()
1134 if (sdev->host->hostt->slave_destroy) in __scsi_remove_device()
1135 sdev->host->hostt->slave_destroy(sdev); in __scsi_remove_device()
1143 scsi_target_reap(scsi_target(sdev)); in __scsi_remove_device()
1152 void scsi_remove_device(struct scsi_device *sdev) in scsi_remove_device() argument
1154 struct Scsi_Host *shost = sdev->host; in scsi_remove_device()
1157 __scsi_remove_device(sdev); in scsi_remove_device()
1166 struct scsi_device *sdev; in __scsi_remove_target() local
1170 list_for_each_entry(sdev, &shost->__devices, siblings) { in __scsi_remove_target()
1171 if (sdev->channel != starget->channel || in __scsi_remove_target()
1172 sdev->id != starget->id || in __scsi_remove_target()
1173 scsi_device_get(sdev)) in __scsi_remove_target()
1176 scsi_remove_device(sdev); in __scsi_remove_target()
1177 scsi_device_put(sdev); in __scsi_remove_target()
1262 void scsi_sysfs_device_initialize(struct scsi_device *sdev) in scsi_sysfs_device_initialize() argument
1265 struct Scsi_Host *shost = sdev->host; in scsi_sysfs_device_initialize()
1266 struct scsi_target *starget = sdev->sdev_target; in scsi_sysfs_device_initialize()
1268 device_initialize(&sdev->sdev_gendev); in scsi_sysfs_device_initialize()
1269 sdev->sdev_gendev.bus = &scsi_bus_type; in scsi_sysfs_device_initialize()
1270 sdev->sdev_gendev.type = &scsi_dev_type; in scsi_sysfs_device_initialize()
1271 dev_set_name(&sdev->sdev_gendev, "%d:%d:%d:%llu", in scsi_sysfs_device_initialize()
1272 sdev->host->host_no, sdev->channel, sdev->id, sdev->lun); in scsi_sysfs_device_initialize()
1274 device_initialize(&sdev->sdev_dev); in scsi_sysfs_device_initialize()
1275 sdev->sdev_dev.parent = get_device(&sdev->sdev_gendev); in scsi_sysfs_device_initialize()
1276 sdev->sdev_dev.class = &sdev_class; in scsi_sysfs_device_initialize()
1277 dev_set_name(&sdev->sdev_dev, "%d:%d:%d:%llu", in scsi_sysfs_device_initialize()
1278 sdev->host->host_no, sdev->channel, sdev->id, sdev->lun); in scsi_sysfs_device_initialize()
1286 sdev->scsi_level = starget->scsi_level; in scsi_sysfs_device_initialize()
1287 if (sdev->scsi_level <= SCSI_2 && in scsi_sysfs_device_initialize()
1288 sdev->scsi_level != SCSI_UNKNOWN && in scsi_sysfs_device_initialize()
1290 sdev->lun_in_cdb = 1; in scsi_sysfs_device_initialize()
1292 transport_setup_device(&sdev->sdev_gendev); in scsi_sysfs_device_initialize()
1294 list_add_tail(&sdev->same_target_siblings, &starget->devices); in scsi_sysfs_device_initialize()
1295 list_add_tail(&sdev->siblings, &shost->__devices); in scsi_sysfs_device_initialize()