Lines Matching refs:devip

1062 static void clear_luns_changed_on_target(struct sdebug_dev_info *devip)  in clear_luns_changed_on_target()  argument
1070 if ((devip->sdbg_host == dp->sdbg_host) && in clear_luns_changed_on_target()
1071 (devip->target == dp->target)) in clear_luns_changed_on_target()
1078 static int make_ua(struct scsi_cmnd *scp, struct sdebug_dev_info *devip) in make_ua() argument
1082 k = find_first_bit(devip->uas_bm, SDEBUG_NUM_UAS); in make_ua()
1141 clear_luns_changed_on_target(devip); in make_ua()
1154 clear_bit(k, devip->uas_bm); in make_ua()
1519 static int inquiry_vpd_b1(struct sdebug_dev_info *devip, unsigned char *arr) in inquiry_vpd_b1() argument
1526 if (devip->zmodel == BLK_ZONED_HA) in inquiry_vpd_b1()
1552 static int inquiry_vpd_b6(struct sdebug_dev_info *devip, unsigned char *arr) in inquiry_vpd_b6() argument
1564 if (sdeb_zbc_model == BLK_ZONED_HM && devip->max_open) in inquiry_vpd_b6()
1565 put_unaligned_be32(devip->max_open, &arr[12]); in inquiry_vpd_b6()
1568 if (devip->zcap < devip->zsize) { in inquiry_vpd_b6()
1570 put_unaligned_be64(devip->zsize, &arr[20]); in inquiry_vpd_b6()
1580 static int resp_inquiry(struct scsi_cmnd *scp, struct sdebug_dev_info *devip) in resp_inquiry() argument
1594 is_zbc = (devip->zmodel != BLK_ZONED_NONE); in resp_inquiry()
1599 else if (sdebug_no_lun_0 && (devip->lun == SDEBUG_LUN_0_VAL)) in resp_inquiry()
1612 int host_no = devip->sdbg_host->shost->host_no; in resp_inquiry()
1615 (devip->channel & 0x7f); in resp_inquiry()
1619 (devip->target * 1000) + devip->lun); in resp_inquiry()
1621 (devip->target * 1000) - 3; in resp_inquiry()
1653 &devip->lu_name); in resp_inquiry()
1689 arr[3] = inquiry_vpd_b1(devip, &arr[4]); in resp_inquiry()
1695 arr[3] = inquiry_vpd_b6(devip, &arr[4]); in resp_inquiry()
1749 struct sdebug_dev_info *devip) in resp_requests() argument
1756 int stopped_state = atomic_read(&devip->stopped); in resp_requests()
1802 static int resp_start_stop(struct scsi_cmnd *scp, struct sdebug_dev_info *devip) in resp_start_stop() argument
1814 stopped_state = atomic_read(&devip->stopped); in resp_start_stop()
1818 if (ktime_to_ns(now_ts) > ktime_to_ns(devip->create_ts)) { in resp_start_stop()
1819 u64 diff_ns = ktime_to_ns(ktime_sub(now_ts, devip->create_ts)); in resp_start_stop()
1823 atomic_set(&devip->stopped, 0); in resp_start_stop()
1838 atomic_xchg(&devip->stopped, want_stop); in resp_start_stop()
1858 struct sdebug_dev_info *devip) in resp_readcap() argument
1877 struct sdebug_dev_info *devip) in resp_readcap16() argument
1906 if (devip->zmodel == BLK_ZONED_HM) in resp_readcap16()
1923 struct sdebug_dev_info *devip) in resp_report_tgtpgs() argument
1927 int host_no = devip->sdbg_host->shost->host_no; in resp_report_tgtpgs()
1945 (devip->channel & 0x7f); in resp_report_tgtpgs()
1947 (devip->channel & 0x7f) + 0x80; in resp_report_tgtpgs()
2000 struct sdebug_dev_info *devip) in resp_rsup_opcodes() argument
2151 struct sdebug_dev_info *devip) in resp_rsup_tmfs() argument
2340 struct sdebug_dev_info *devip) in resp_mode_sense() argument
2359 is_zbc = (devip->zmodel != BLK_ZONED_NONE); in resp_mode_sense()
2370 target_dev_id = ((devip->sdbg_host->shost->host_no + 1) * 2000) + in resp_mode_sense()
2371 (devip->target * 1000) - 3; in resp_mode_sense()
2507 struct sdebug_dev_info *devip) in resp_mode_select() argument
2584 set_bit(SDEBUG_UA_MODE_CHANGED, devip->uas_bm); in resp_mode_select()
2626 struct sdebug_dev_info *devip) in resp_log_sense() argument
2725 static inline bool sdebug_dev_is_zoned(struct sdebug_dev_info *devip) in sdebug_dev_is_zoned() argument
2727 return devip->nr_zones != 0; in sdebug_dev_is_zoned()
2730 static struct sdeb_zone_state *zbc_zone(struct sdebug_dev_info *devip, in zbc_zone() argument
2733 u32 zno = lba >> devip->zsize_shift; in zbc_zone()
2736 if (devip->zcap == devip->zsize || zno < devip->nr_conv_zones) in zbc_zone()
2737 return &devip->zstate[zno]; in zbc_zone()
2743 zno = 2 * zno - devip->nr_conv_zones; in zbc_zone()
2744 WARN_ONCE(zno >= devip->nr_zones, "%u > %u\n", zno, devip->nr_zones); in zbc_zone()
2745 zsp = &devip->zstate[zno]; in zbc_zone()
2767 static void zbc_close_zone(struct sdebug_dev_info *devip, in zbc_close_zone() argument
2780 devip->nr_imp_open--; in zbc_close_zone()
2782 devip->nr_exp_open--; in zbc_close_zone()
2788 devip->nr_closed++; in zbc_close_zone()
2792 static void zbc_close_imp_open_zone(struct sdebug_dev_info *devip) in zbc_close_imp_open_zone() argument
2794 struct sdeb_zone_state *zsp = &devip->zstate[0]; in zbc_close_imp_open_zone()
2797 for (i = 0; i < devip->nr_zones; i++, zsp++) { in zbc_close_imp_open_zone()
2799 zbc_close_zone(devip, zsp); in zbc_close_imp_open_zone()
2805 static void zbc_open_zone(struct sdebug_dev_info *devip, in zbc_open_zone() argument
2820 zbc_close_zone(devip, zsp); in zbc_open_zone()
2821 else if (devip->max_open && in zbc_open_zone()
2822 devip->nr_imp_open + devip->nr_exp_open >= devip->max_open) in zbc_open_zone()
2823 zbc_close_imp_open_zone(devip); in zbc_open_zone()
2826 devip->nr_closed--; in zbc_open_zone()
2829 devip->nr_exp_open++; in zbc_open_zone()
2832 devip->nr_imp_open++; in zbc_open_zone()
2836 static inline void zbc_set_zone_full(struct sdebug_dev_info *devip, in zbc_set_zone_full() argument
2841 devip->nr_imp_open--; in zbc_set_zone_full()
2844 devip->nr_exp_open--; in zbc_set_zone_full()
2854 static void zbc_inc_wp(struct sdebug_dev_info *devip, in zbc_inc_wp() argument
2857 struct sdeb_zone_state *zsp = zbc_zone(devip, lba); in zbc_inc_wp()
2866 zbc_set_zone_full(devip, zsp); in zbc_inc_wp()
2885 zbc_set_zone_full(devip, zsp); in zbc_inc_wp()
2900 struct sdebug_dev_info *devip = (struct sdebug_dev_info *)sdp->hostdata; in check_zbc_access_params() local
2901 struct sdeb_zone_state *zsp = zbc_zone(devip, lba); in check_zbc_access_params()
2902 struct sdeb_zone_state *zsp_end = zbc_zone(devip, lba + num - 1); in check_zbc_access_params()
2905 if (devip->zmodel == BLK_ZONED_HA) in check_zbc_access_params()
2960 if (devip->max_open && in check_zbc_access_params()
2961 devip->nr_exp_open >= devip->max_open) { in check_zbc_access_params()
2967 zbc_open_zone(devip, zsp, false); in check_zbc_access_params()
2978 struct sdebug_dev_info *devip = (struct sdebug_dev_info *)sdp->hostdata; in check_device_access_params() local
2994 if (sdebug_dev_is_zoned(devip)) in check_device_access_params()
3006 static inline struct sdeb_store_info *devip2sip(struct sdebug_dev_info *devip, in devip2sip() argument
3013 return xa_load(per_store_ap, devip->sdbg_host->si_idx); in devip2sip()
3294 static int resp_read_dt0(struct scsi_cmnd *scp, struct sdebug_dev_info *devip) in resp_read_dt0() argument
3301 struct sdeb_store_info *sip = devip2sip(devip, true); in resp_read_dt0()
3591 static int resp_write_dt0(struct scsi_cmnd *scp, struct sdebug_dev_info *devip) in resp_write_dt0() argument
3598 struct sdeb_store_info *sip = devip2sip(devip, true); in resp_write_dt0()
3692 if (sdebug_dev_is_zoned(devip)) in resp_write_dt0()
3693 zbc_inc_wp(devip, lba, num); in resp_write_dt0()
3728 struct sdebug_dev_info *devip) in resp_write_scat() argument
3733 struct sdeb_store_info *sip = devip2sip(devip, true); in resp_write_scat()
3846 if (sdebug_dev_is_zoned(devip)) in resp_write_scat()
3847 zbc_inc_wp(devip, lba, num); in resp_write_scat()
3893 struct sdebug_dev_info *devip = (struct sdebug_dev_info *)sdp->hostdata; in resp_write_same() local
3943 if (sdebug_dev_is_zoned(devip)) in resp_write_same()
3944 zbc_inc_wp(devip, lba, num); in resp_write_same()
3952 struct sdebug_dev_info *devip) in resp_write_same_10() argument
3977 struct sdebug_dev_info *devip) in resp_write_same_16() argument
4008 struct sdebug_dev_info *devip) in resp_write_buffer() argument
4019 set_bit(SDEBUG_UA_BUS_RESET, devip->uas_bm); in resp_write_buffer()
4020 set_bit(SDEBUG_UA_MICROCODE_CHANGED, devip->uas_bm); in resp_write_buffer()
4023 set_bit(SDEBUG_UA_MICROCODE_CHANGED_WO_RESET, devip->uas_bm); in resp_write_buffer()
4028 &devip->sdbg_host->dev_info_list, in resp_write_buffer()
4032 if (devip != dp) in resp_write_buffer()
4040 &devip->sdbg_host->dev_info_list, in resp_write_buffer()
4054 struct sdebug_dev_info *devip) in resp_comp_write() argument
4058 struct sdeb_store_info *sip = devip2sip(devip, true); in resp_comp_write()
4120 static int resp_unmap(struct scsi_cmnd *scp, struct sdebug_dev_info *devip) in resp_unmap() argument
4124 struct sdeb_store_info *sip = devip2sip(devip, true); in resp_unmap()
4178 struct sdebug_dev_info *devip) in resp_get_lba_status() argument
4197 struct sdeb_store_info *sip = devip2sip(devip, true); in resp_get_lba_status()
4220 struct sdebug_dev_info *devip) in resp_sync_cache() argument
4253 struct sdebug_dev_info *devip) in resp_pre_fetch() argument
4260 struct sdeb_store_info *sip = devip2sip(devip, true); in resp_pre_fetch()
4305 struct sdebug_dev_info *devip) in resp_report_luns() argument
4321 clear_luns_changed_on_target(devip); in resp_report_luns()
4397 static int resp_verify(struct scsi_cmnd *scp, struct sdebug_dev_info *devip) in resp_verify() argument
4407 struct sdeb_store_info *sip = devip2sip(devip, true); in resp_verify()
4477 struct sdebug_dev_info *devip) in resp_report_zones() argument
4487 struct sdeb_store_info *sip = devip2sip(devip, false); in resp_report_zones()
4489 if (!sdebug_dev_is_zoned(devip)) { in resp_report_zones()
4519 if (WARN_ONCE(zbc_zone(devip, lba) == zsp, "lba = %llu\n", lba)) in resp_report_zones()
4521 zsp = zbc_zone(devip, lba); in resp_report_zones()
4605 if (devip->zcap < devip->zsize) in resp_report_zones()
4606 put_unaligned_be64(devip->zsize, arr + 16); in resp_report_zones()
4618 static void zbc_open_all(struct sdebug_dev_info *devip) in zbc_open_all() argument
4620 struct sdeb_zone_state *zsp = &devip->zstate[0]; in zbc_open_all()
4623 for (i = 0; i < devip->nr_zones; i++, zsp++) { in zbc_open_all()
4625 zbc_open_zone(devip, &devip->zstate[i], true); in zbc_open_all()
4629 static int resp_open_zone(struct scsi_cmnd *scp, struct sdebug_dev_info *devip) in resp_open_zone() argument
4637 struct sdeb_store_info *sip = devip2sip(devip, false); in resp_open_zone()
4639 if (!sdebug_dev_is_zoned(devip)) { in resp_open_zone()
4648 if (devip->max_open && in resp_open_zone()
4649 devip->nr_exp_open + devip->nr_closed > devip->max_open) { in resp_open_zone()
4656 zbc_open_all(devip); in resp_open_zone()
4668 zsp = zbc_zone(devip, z_id); in resp_open_zone()
4684 if (devip->max_open && devip->nr_exp_open >= devip->max_open) { in resp_open_zone()
4691 zbc_open_zone(devip, zsp, true); in resp_open_zone()
4697 static void zbc_close_all(struct sdebug_dev_info *devip) in zbc_close_all() argument
4701 for (i = 0; i < devip->nr_zones; i++) in zbc_close_all()
4702 zbc_close_zone(devip, &devip->zstate[i]); in zbc_close_all()
4706 struct sdebug_dev_info *devip) in resp_close_zone() argument
4713 struct sdeb_store_info *sip = devip2sip(devip, false); in resp_close_zone()
4715 if (!sdebug_dev_is_zoned(devip)) { in resp_close_zone()
4723 zbc_close_all(devip); in resp_close_zone()
4735 zsp = zbc_zone(devip, z_id); in resp_close_zone()
4747 zbc_close_zone(devip, zsp); in resp_close_zone()
4753 static void zbc_finish_zone(struct sdebug_dev_info *devip, in zbc_finish_zone() argument
4761 zbc_close_zone(devip, zsp); in zbc_finish_zone()
4763 devip->nr_closed--; in zbc_finish_zone()
4769 static void zbc_finish_all(struct sdebug_dev_info *devip) in zbc_finish_all() argument
4773 for (i = 0; i < devip->nr_zones; i++) in zbc_finish_all()
4774 zbc_finish_zone(devip, &devip->zstate[i], false); in zbc_finish_all()
4778 struct sdebug_dev_info *devip) in resp_finish_zone() argument
4785 struct sdeb_store_info *sip = devip2sip(devip, false); in resp_finish_zone()
4787 if (!sdebug_dev_is_zoned(devip)) { in resp_finish_zone()
4795 zbc_finish_all(devip); in resp_finish_zone()
4807 zsp = zbc_zone(devip, z_id); in resp_finish_zone()
4819 zbc_finish_zone(devip, zsp, true); in resp_finish_zone()
4825 static void zbc_rwp_zone(struct sdebug_dev_info *devip, in zbc_rwp_zone() argument
4829 struct sdeb_store_info *sip = devip2sip(devip, false); in zbc_rwp_zone()
4836 zbc_close_zone(devip, zsp); in zbc_rwp_zone()
4839 devip->nr_closed--; in zbc_rwp_zone()
4850 static void zbc_rwp_all(struct sdebug_dev_info *devip) in zbc_rwp_all() argument
4854 for (i = 0; i < devip->nr_zones; i++) in zbc_rwp_all()
4855 zbc_rwp_zone(devip, &devip->zstate[i]); in zbc_rwp_all()
4858 static int resp_rwp_zone(struct scsi_cmnd *scp, struct sdebug_dev_info *devip) in resp_rwp_zone() argument
4865 struct sdeb_store_info *sip = devip2sip(devip, false); in resp_rwp_zone()
4867 if (!sdebug_dev_is_zoned(devip)) { in resp_rwp_zone()
4875 zbc_rwp_all(devip); in resp_rwp_zone()
4886 zsp = zbc_zone(devip, z_id); in resp_rwp_zone()
4898 zbc_rwp_zone(devip, zsp); in resp_rwp_zone()
4933 struct sdebug_dev_info *devip; in sdebug_q_cmd_complete() local
4958 devip = (struct sdebug_dev_info *)scp->device->hostdata; in sdebug_q_cmd_complete()
4959 if (likely(devip)) in sdebug_q_cmd_complete()
4960 atomic_dec(&devip->num_in_q); in sdebug_q_cmd_complete()
5017 static int sdebug_device_create_zones(struct sdebug_dev_info *devip) in sdebug_device_create_zones() argument
5032 devip->zsize = (DEF_ZBC_ZONE_SIZE_MB * SZ_1M) in sdebug_device_create_zones()
5034 while (capacity < devip->zsize << 2 && devip->zsize >= 2) in sdebug_device_create_zones()
5035 devip->zsize >>= 1; in sdebug_device_create_zones()
5036 if (devip->zsize < 2) { in sdebug_device_create_zones()
5045 devip->zsize = (sdeb_zbc_zone_size_mb * SZ_1M) in sdebug_device_create_zones()
5047 if (devip->zsize >= capacity) { in sdebug_device_create_zones()
5053 devip->zsize_shift = ilog2(devip->zsize); in sdebug_device_create_zones()
5054 devip->nr_zones = (capacity + devip->zsize - 1) >> devip->zsize_shift; in sdebug_device_create_zones()
5057 devip->zcap = devip->zsize; in sdebug_device_create_zones()
5059 devip->zcap = (sdeb_zbc_zone_cap_mb * SZ_1M) >> in sdebug_device_create_zones()
5061 if (devip->zcap > devip->zsize) { in sdebug_device_create_zones()
5067 conv_capacity = (sector_t)sdeb_zbc_nr_conv << devip->zsize_shift; in sdebug_device_create_zones()
5072 devip->nr_conv_zones = sdeb_zbc_nr_conv; in sdebug_device_create_zones()
5073 devip->nr_seq_zones = ALIGN(capacity - conv_capacity, devip->zsize) >> in sdebug_device_create_zones()
5074 devip->zsize_shift; in sdebug_device_create_zones()
5075 devip->nr_zones = devip->nr_conv_zones + devip->nr_seq_zones; in sdebug_device_create_zones()
5078 if (devip->zcap < devip->zsize) in sdebug_device_create_zones()
5079 devip->nr_zones += devip->nr_seq_zones; in sdebug_device_create_zones()
5081 if (devip->zmodel == BLK_ZONED_HM) { in sdebug_device_create_zones()
5083 if (sdeb_zbc_max_open >= devip->nr_zones - 1) in sdebug_device_create_zones()
5084 devip->max_open = (devip->nr_zones - 1) / 2; in sdebug_device_create_zones()
5086 devip->max_open = sdeb_zbc_max_open; in sdebug_device_create_zones()
5089 devip->zstate = kcalloc(devip->nr_zones, in sdebug_device_create_zones()
5091 if (!devip->zstate) in sdebug_device_create_zones()
5094 for (i = 0; i < devip->nr_zones; i++) { in sdebug_device_create_zones()
5095 zsp = &devip->zstate[i]; in sdebug_device_create_zones()
5099 if (i < devip->nr_conv_zones) { in sdebug_device_create_zones()
5104 min_t(u64, devip->zsize, capacity - zstart); in sdebug_device_create_zones()
5105 } else if ((zstart & (devip->zsize - 1)) == 0) { in sdebug_device_create_zones()
5106 if (devip->zmodel == BLK_ZONED_HM) in sdebug_device_create_zones()
5113 min_t(u64, devip->zcap, capacity - zstart); in sdebug_device_create_zones()
5118 zsp->z_size = min_t(u64, devip->zsize - devip->zcap, in sdebug_device_create_zones()
5132 struct sdebug_dev_info *devip; in sdebug_device_create() local
5134 devip = kzalloc(sizeof(*devip), flags); in sdebug_device_create()
5135 if (devip) { in sdebug_device_create()
5137 uuid_gen(&devip->lu_name); in sdebug_device_create()
5140 devip->lu_name = shared_uuid; in sdebug_device_create()
5144 devip->lu_name = shared_uuid; in sdebug_device_create()
5147 devip->sdbg_host = sdbg_host; in sdebug_device_create()
5149 devip->zmodel = sdeb_zbc_model; in sdebug_device_create()
5150 if (sdebug_device_create_zones(devip)) { in sdebug_device_create()
5151 kfree(devip); in sdebug_device_create()
5155 devip->zmodel = BLK_ZONED_NONE; in sdebug_device_create()
5157 devip->sdbg_host = sdbg_host; in sdebug_device_create()
5158 devip->create_ts = ktime_get_boottime(); in sdebug_device_create()
5159 atomic_set(&devip->stopped, (sdeb_tur_ms_to_ready > 0 ? 2 : 0)); in sdebug_device_create()
5160 list_add_tail(&devip->dev_list, &sdbg_host->dev_info_list); in sdebug_device_create()
5162 return devip; in sdebug_device_create()
5169 struct sdebug_dev_info *devip; in find_build_dev_info() local
5177 list_for_each_entry(devip, &sdbg_host->dev_info_list, dev_list) { in find_build_dev_info()
5178 if ((devip->used) && (devip->channel == sdev->channel) && in find_build_dev_info()
5179 (devip->target == sdev->id) && in find_build_dev_info()
5180 (devip->lun == sdev->lun)) in find_build_dev_info()
5181 return devip; in find_build_dev_info()
5183 if ((!devip->used) && (!open_devip)) in find_build_dev_info()
5184 open_devip = devip; in find_build_dev_info()
5215 struct sdebug_dev_info *devip = in scsi_debug_slave_configure() local
5223 if (devip == NULL) { in scsi_debug_slave_configure()
5224 devip = find_build_dev_info(sdp); in scsi_debug_slave_configure()
5225 if (devip == NULL) in scsi_debug_slave_configure()
5228 sdp->hostdata = devip; in scsi_debug_slave_configure()
5237 struct sdebug_dev_info *devip = in scsi_debug_slave_destroy() local
5243 if (devip) { in scsi_debug_slave_destroy()
5245 devip->used = false; in scsi_debug_slave_destroy()
5270 struct sdebug_dev_info *devip; in stop_queued_cmnd() local
5285 devip = (struct sdebug_dev_info *) in stop_queued_cmnd()
5287 if (devip) in stop_queued_cmnd()
5288 atomic_dec(&devip->num_in_q); in stop_queued_cmnd()
5315 struct sdebug_dev_info *devip; in stop_all_queued() local
5325 devip = (struct sdebug_dev_info *) in stop_all_queued()
5327 if (devip) in stop_all_queued()
5328 atomic_dec(&devip->num_in_q); in stop_all_queued()
5382 struct sdebug_dev_info *devip = in scsi_debug_device_reset() local
5387 if (devip) in scsi_debug_device_reset()
5388 set_bit(SDEBUG_UA_POR, devip->uas_bm); in scsi_debug_device_reset()
5396 struct sdebug_dev_info *devip; in scsi_debug_target_reset() local
5414 list_for_each_entry(devip, in scsi_debug_target_reset()
5417 if (devip->target == sdp->id) { in scsi_debug_target_reset()
5418 set_bit(SDEBUG_UA_BUS_RESET, devip->uas_bm); in scsi_debug_target_reset()
5432 struct sdebug_dev_info *devip; in scsi_debug_bus_reset() local
5447 list_for_each_entry(devip, in scsi_debug_bus_reset()
5450 set_bit(SDEBUG_UA_BUS_RESET, devip->uas_bm); in scsi_debug_bus_reset()
5465 struct sdebug_dev_info *devip; in scsi_debug_host_reset() local
5473 list_for_each_entry(devip, &sdbg_host->dev_info_list, in scsi_debug_host_reset()
5475 set_bit(SDEBUG_UA_BUS_RESET, devip->uas_bm); in scsi_debug_host_reset()
5587 static int schedule_resp(struct scsi_cmnd *cmnd, struct sdebug_dev_info *devip, in schedule_resp() argument
5604 if (unlikely(devip == NULL)) { in schedule_resp()
5620 num_in_q = atomic_read(&devip->num_in_q); in schedule_resp()
5652 atomic_inc(&devip->num_in_q); in schedule_resp()
5662 atomic_dec(&devip->num_in_q); in schedule_resp()
5679 cmnd->result = pfp ? pfp(cmnd, devip) : 0; in schedule_resp()
5722 atomic_dec(&devip->num_in_q); in schedule_resp()
5804 cmnd->result = pfp != NULL ? pfp(cmnd, devip) : 0; in schedule_resp()
7403 struct sdebug_dev_info *devip; in sdebug_change_qdepth() local
7406 devip = (struct sdebug_dev_info *)sdev->hostdata; in sdebug_change_qdepth()
7407 if (NULL == devip) { in sdebug_change_qdepth()
7411 num_in_q = atomic_read(&devip->num_in_q); in sdebug_change_qdepth()
7446 static int resp_not_ready(struct scsi_cmnd *scp, struct sdebug_dev_info *devip) in resp_not_ready() argument
7453 stopped_state = atomic_read(&devip->stopped); in resp_not_ready()
7455 if (ktime_to_ns(now_ts) > ktime_to_ns(devip->create_ts)) { in resp_not_ready()
7456 diff_ns = ktime_to_ns(ktime_sub(now_ts, devip->create_ts)); in resp_not_ready()
7459 atomic_set(&devip->stopped, 0); in resp_not_ready()
7528 struct sdebug_dev_info *devip; in sdebug_blk_mq_poll() local
7566 devip = (struct sdebug_dev_info *)scp->device->hostdata; in sdebug_blk_mq_poll()
7567 if (likely(devip)) in sdebug_blk_mq_poll()
7568 atomic_dec(&devip->num_in_q); in sdebug_blk_mq_poll()
7618 struct sdebug_dev_info *devip; in scsi_debug_queuecommand() local
7663 devip = (struct sdebug_dev_info *)sdp->hostdata; in scsi_debug_queuecommand()
7664 if (unlikely(!devip)) { in scsi_debug_queuecommand()
7665 devip = find_build_dev_info(sdp); in scsi_debug_queuecommand()
7666 if (NULL == devip) in scsi_debug_queuecommand()
7730 find_first_bit(devip->uas_bm, in scsi_debug_queuecommand()
7732 errsts = make_ua(scp, devip); in scsi_debug_queuecommand()
7737 atomic_read(&devip->stopped))) { in scsi_debug_queuecommand()
7738 errsts = resp_not_ready(scp, devip); in scsi_debug_queuecommand()
7755 return schedule_resp(scp, devip, errsts, pfp, 0, 0); in scsi_debug_queuecommand()
7768 return schedule_resp(scp, devip, errsts, pfp, jdelay, 0); in scsi_debug_queuecommand()
7770 return schedule_resp(scp, devip, errsts, pfp, sdebug_jdelay, in scsi_debug_queuecommand()
7773 return schedule_resp(scp, devip, check_condition_result, NULL, 0, 0); in scsi_debug_queuecommand()