Lines Matching refs:sip

498 static void sdebug_erase_store(int idx, struct sdeb_store_info *sip);
871 static void *lba2fake_store(struct sdeb_store_info *sip, in lba2fake_store() argument
874 struct sdeb_store_info *lsip = sip; in lba2fake_store()
877 if (!sip || !sip->storep) { in lba2fake_store()
884 static struct t10_pi_tuple *dif_store(struct sdeb_store_info *sip, in dif_store() argument
889 return sip->dif_storep + sector; in dif_store()
2932 static int do_device_access(struct sdeb_store_info *sip, struct scsi_cmnd *scp, in do_device_access() argument
2948 if (!sdb->length || !sip) in do_device_access()
2952 fsp = sip->storep; in do_device_access()
2990 static bool comp_write_worker(struct sdeb_store_info *sip, u64 lba, u32 num, in comp_write_worker() argument
2997 u8 *fsp = sip->storep; in comp_write_worker()
3064 struct sdeb_store_info *sip = devip2sip((struct sdebug_dev_info *) in dif_copy_prot() local
3066 struct t10_pi_tuple *dif_storep = sip->dif_storep; in dif_copy_prot()
3079 void *start = dif_store(sip, sector); in dif_copy_prot()
3110 struct sdeb_store_info *sip = devip2sip((struct sdebug_dev_info *) in prot_verify_read() local
3118 sdt = dif_store(sip, sector); in prot_verify_read()
3123 ret = dif_verify(sdt, lba2fake_store(sip, sector), sector, in prot_verify_read()
3144 struct sdeb_store_info *sip = devip2sip(devip, true); in resp_read_dt0() local
3145 rwlock_t *macc_lckp = sip ? &sip->macc_lck : &sdeb_fake_rw_lck; in resp_read_dt0()
3237 ret = do_device_access(sip, scp, 0, lba, num, false); in resp_read_dt0()
3375 static unsigned int map_state(struct sdeb_store_info *sip, sector_t lba, in map_state() argument
3384 mapped = test_bit(index, sip->map_storep); in map_state()
3387 next = find_next_zero_bit(sip->map_storep, map_size, index); in map_state()
3389 next = find_next_bit(sip->map_storep, map_size, index); in map_state()
3396 static void map_region(struct sdeb_store_info *sip, sector_t lba, in map_region() argument
3405 set_bit(index, sip->map_storep); in map_region()
3411 static void unmap_region(struct sdeb_store_info *sip, sector_t lba, in unmap_region() argument
3415 u8 *fsp = sip->storep; in unmap_region()
3423 clear_bit(index, sip->map_storep); in unmap_region()
3430 if (sip->dif_storep) { in unmap_region()
3431 memset(sip->dif_storep + lba, 0xff, in unmap_region()
3432 sizeof(*sip->dif_storep) * in unmap_region()
3447 struct sdeb_store_info *sip = devip2sip(devip, true); in resp_write_dt0() local
3448 rwlock_t *macc_lckp = &sip->macc_lck; in resp_write_dt0()
3521 ret = do_device_access(sip, scp, 0, lba, num, true); in resp_write_dt0()
3523 map_region(sip, lba, num); in resp_write_dt0()
3566 struct sdeb_store_info *sip = devip2sip(devip, true); in resp_write_scat() local
3567 rwlock_t *macc_lckp = &sip->macc_lck; in resp_write_scat()
3678 ret = do_device_access(sip, scp, sg_off, lba, num, true); in resp_write_scat()
3683 map_region(sip, lba, num); in resp_write_scat()
3732 struct sdeb_store_info *sip = devip2sip((struct sdebug_dev_info *) in resp_write_same() local
3734 rwlock_t *macc_lckp = &sip->macc_lck; in resp_write_same()
3747 unmap_region(sip, lba, num); in resp_write_same()
3753 fsp = sip->storep; in resp_write_same()
3762 write_unlock(&sip->macc_lck); in resp_write_same()
3776 map_region(sip, lba, num); in resp_write_same()
3893 struct sdeb_store_info *sip = devip2sip(devip, true); in resp_comp_write() local
3894 rwlock_t *macc_lckp = &sip->macc_lck; in resp_comp_write()
3937 if (!comp_write_worker(sip, lba, num, arr, false)) { in resp_comp_write()
3943 map_region(sip, lba, num); in resp_comp_write()
3960 struct sdeb_store_info *sip = devip2sip(devip, true); in resp_unmap() local
3961 rwlock_t *macc_lckp = &sip->macc_lck; in resp_unmap()
4000 unmap_region(sip, lba, num); in resp_unmap()
4034 struct sdeb_store_info *sip = devip2sip(devip, true); in resp_get_lba_status() local
4036 mapped = map_state(sip, lba, &num); in resp_get_lba_status()
4097 struct sdeb_store_info *sip = devip2sip(devip, true); in resp_pre_fetch() local
4098 rwlock_t *macc_lckp = &sip->macc_lck; in resp_pre_fetch()
4099 u8 *fsp = sip->storep; in resp_pre_fetch()
4245 struct sdeb_store_info *sip = devip2sip(devip, true); in resp_verify() local
4246 rwlock_t *macc_lckp = &sip->macc_lck; in resp_verify()
4301 if (!comp_write_worker(sip, lba, vnum, arr, true)) { in resp_verify()
4326 struct sdeb_store_info *sip = devip2sip(devip, false); in resp_report_zones() local
4327 rwlock_t *macc_lckp = sip ? &sip->macc_lck : &sdeb_fake_rw_lck; in resp_report_zones()
4469 struct sdeb_store_info *sip = devip2sip(devip, false); in resp_open_zone() local
4470 rwlock_t *macc_lckp = sip ? &sip->macc_lck : &sdeb_fake_rw_lck; in resp_open_zone()
4546 struct sdeb_store_info *sip = devip2sip(devip, false); in resp_close_zone() local
4547 rwlock_t *macc_lckp = sip ? &sip->macc_lck : &sdeb_fake_rw_lck; in resp_close_zone()
4619 struct sdeb_store_info *sip = devip2sip(devip, false); in resp_finish_zone() local
4620 rwlock_t *macc_lckp = sip ? &sip->macc_lck : &sdeb_fake_rw_lck; in resp_finish_zone()
4664 struct sdeb_store_info *sip = devip2sip(devip, false); in zbc_rwp_zone() local
4677 memset(sip->storep + zsp->z_start * sdebug_sector_size, 0, in zbc_rwp_zone()
4700 struct sdeb_store_info *sip = devip2sip(devip, false); in resp_rwp_zone() local
4701 rwlock_t *macc_lckp = sip ? &sip->macc_lck : &sdeb_fake_rw_lck; in resp_rwp_zone()
5832 struct sdeb_store_info *sip; in scsi_debug_show_info() local
5845 xa_for_each(per_store_ap, l_idx, sip) { in scsi_debug_show_info()
6339 struct sdeb_store_info *sip; in add_host_store() local
6349 xa_for_each_marked(per_store_ap, idx, sip, in add_host_store()
6456 struct sdeb_store_info *sip = xa_load(per_store_ap, 0); in map_show() local
6458 if (sip) in map_show()
6460 (int)map_size, sip->map_storep); in map_show()
6938 static void sdebug_erase_store(int idx, struct sdeb_store_info *sip) in sdebug_erase_store() argument
6942 if (!sip) { in sdebug_erase_store()
6945 sip = xa_load(per_store_ap, idx); in sdebug_erase_store()
6946 if (!sip) in sdebug_erase_store()
6949 vfree(sip->map_storep); in sdebug_erase_store()
6950 vfree(sip->dif_storep); in sdebug_erase_store()
6951 vfree(sip->storep); in sdebug_erase_store()
6953 kfree(sip); in sdebug_erase_store()
6960 struct sdeb_store_info *sip = NULL; in sdebug_erase_all_stores() local
6962 xa_for_each(per_store_ap, idx, sip) { in sdebug_erase_all_stores()
6966 sdebug_erase_store(idx, sip); in sdebug_erase_all_stores()
6982 struct sdeb_store_info *sip = NULL; in sdebug_add_store() local
6985 sip = kzalloc(sizeof(*sip), GFP_KERNEL); in sdebug_add_store()
6986 if (!sip) in sdebug_add_store()
6990 res = __xa_alloc(per_store_ap, &n_idx, sip, xal, GFP_ATOMIC); in sdebug_add_store()
6993 kfree(sip); in sdebug_add_store()
7003 sip->storep = vzalloc(sz); in sdebug_add_store()
7004 if (!sip->storep) { in sdebug_add_store()
7009 sdebug_build_parts(sip->storep, sz); in sdebug_add_store()
7016 sip->dif_storep = vmalloc(dif_size); in sdebug_add_store()
7019 sip->dif_storep); in sdebug_add_store()
7021 if (!sip->dif_storep) { in sdebug_add_store()
7025 memset(sip->dif_storep, 0xff, dif_size); in sdebug_add_store()
7030 sip->map_storep = vmalloc(array_size(sizeof(long), in sdebug_add_store()
7035 if (!sip->map_storep) { in sdebug_add_store()
7040 bitmap_zero(sip->map_storep, map_size); in sdebug_add_store()
7044 map_region(sip, 0, 2); in sdebug_add_store()
7047 rwlock_init(&sip->macc_lck); in sdebug_add_store()
7050 sdebug_erase_store((int)n_idx, sip); in sdebug_add_store()