Lines Matching refs:lba

872 			    unsigned long long lba)  in lba2fake_store()  argument
876 lba = do_div(lba, sdebug_store_sectors); in lba2fake_store()
881 return lsip->storep + lba * sdebug_sector_size; in lba2fake_store()
2665 unsigned long long lba) in zbc_zone() argument
2667 return &devip->zstate[lba >> devip->zsize_shift]; in zbc_zone()
2745 unsigned long long lba, unsigned int num) in zbc_inc_wp() argument
2747 struct sdeb_zone_state *zsp = zbc_zone(devip, lba); in zbc_inc_wp()
2761 if (lba != zsp->z_wp) in zbc_inc_wp()
2764 end = lba + num; in zbc_inc_wp()
2766 n = zend - lba; in zbc_inc_wp()
2778 lba += n; in zbc_inc_wp()
2787 unsigned long long lba, unsigned int num, bool write) in check_zbc_access_params() argument
2791 struct sdeb_zone_state *zsp = zbc_zone(devip, lba); in check_zbc_access_params()
2792 struct sdeb_zone_state *zsp_end = zbc_zone(devip, lba + num - 1); in check_zbc_access_params()
2835 if (lba != zsp->z_wp) { in check_zbc_access_params()
2859 (struct scsi_cmnd *scp, unsigned long long lba, in check_device_access_params() argument
2865 if (lba + num > sdebug_capacity) { in check_device_access_params()
2880 return check_zbc_access_params(scp, lba, num, write); in check_device_access_params()
2903 u32 sg_skip, u64 lba, u32 num, bool do_write) in do_device_access() argument
2924 block = do_div(lba, sdebug_store_sectors); in do_device_access()
2960 static bool comp_write_worker(struct sdeb_store_info *sip, u64 lba, u32 num, in comp_write_worker() argument
2969 block = do_div(lba, store_blks); in comp_write_worker()
3113 u64 lba; in resp_read_dt0() local
3121 lba = get_unaligned_be64(cmd + 2); in resp_read_dt0()
3127 lba = get_unaligned_be32(cmd + 2); in resp_read_dt0()
3133 lba = (u32)cmd[3] | (u32)cmd[2] << 8 | in resp_read_dt0()
3140 lba = get_unaligned_be32(cmd + 2); in resp_read_dt0()
3146 lba = get_unaligned_be32(cmd + 2); in resp_read_dt0()
3151 lba = get_unaligned_be64(cmd + 12); in resp_read_dt0()
3175 ret = check_device_access_params(scp, lba, num, false); in resp_read_dt0()
3179 (lba <= (sdebug_medium_error_start + sdebug_medium_error_count - 1)) && in resp_read_dt0()
3180 ((lba + num) > sdebug_medium_error_start))) { in resp_read_dt0()
3186 ret = (lba < OPT_MEDIUM_ERR_ADDR) in resp_read_dt0()
3187 ? OPT_MEDIUM_ERR_ADDR : (int)lba; in resp_read_dt0()
3198 int prot_ret = prot_verify_read(scp, lba, num, ei_lba); in resp_read_dt0()
3207 ret = do_device_access(sip, scp, 0, lba, num, false); in resp_read_dt0()
3328 static unsigned long lba_to_map_index(sector_t lba) in lba_to_map_index() argument
3331 lba += sdebug_unmap_granularity - sdebug_unmap_alignment; in lba_to_map_index()
3332 sector_div(lba, sdebug_unmap_granularity); in lba_to_map_index()
3333 return lba; in lba_to_map_index()
3338 sector_t lba = index * sdebug_unmap_granularity; in map_index_to_lba() local
3341 lba -= sdebug_unmap_granularity - sdebug_unmap_alignment; in map_index_to_lba()
3342 return lba; in map_index_to_lba()
3345 static unsigned int map_state(struct sdeb_store_info *sip, sector_t lba, in map_state() argument
3353 index = lba_to_map_index(lba); in map_state()
3362 *num = end - lba; in map_state()
3366 static void map_region(struct sdeb_store_info *sip, sector_t lba, in map_region() argument
3369 sector_t end = lba + len; in map_region()
3371 while (lba < end) { in map_region()
3372 unsigned long index = lba_to_map_index(lba); in map_region()
3377 lba = map_index_to_lba(index + 1); in map_region()
3381 static void unmap_region(struct sdeb_store_info *sip, sector_t lba, in unmap_region() argument
3384 sector_t end = lba + len; in unmap_region()
3387 while (lba < end) { in unmap_region()
3388 unsigned long index = lba_to_map_index(lba); in unmap_region()
3390 if (lba == map_index_to_lba(index) && in unmap_region()
3391 lba + sdebug_unmap_granularity <= end && in unmap_region()
3395 memset(fsp + lba * sdebug_sector_size, in unmap_region()
3401 memset(sip->dif_storep + lba, 0xff, in unmap_region()
3406 lba = map_index_to_lba(index + 1); in unmap_region()
3416 u64 lba; in resp_write_dt0() local
3424 lba = get_unaligned_be64(cmd + 2); in resp_write_dt0()
3430 lba = get_unaligned_be32(cmd + 2); in resp_write_dt0()
3436 lba = (u32)cmd[3] | (u32)cmd[2] << 8 | in resp_write_dt0()
3443 lba = get_unaligned_be32(cmd + 2); in resp_write_dt0()
3449 lba = get_unaligned_be32(cmd + 2); in resp_write_dt0()
3454 lba = get_unaligned_be64(cmd + 12); in resp_write_dt0()
3474 ret = check_device_access_params(scp, lba, num, true); in resp_write_dt0()
3482 int prot_ret = prot_verify_write(scp, lba, num, ei_lba); in resp_write_dt0()
3491 ret = do_device_access(sip, scp, 0, lba, num, true); in resp_write_dt0()
3493 map_region(sip, lba, num); in resp_write_dt0()
3496 zbc_inc_wp(devip, lba, num); in resp_write_dt0()
3543 u64 lba; in resp_write_scat() local
3610 lba = get_unaligned_be64(up + 0); in resp_write_scat()
3615 my_name, __func__, k, lba, num, sg_off); in resp_write_scat()
3618 ret = check_device_access_params(scp, lba, num, true); in resp_write_scat()
3637 int prot_ret = prot_verify_write(scp, lba, num, in resp_write_scat()
3648 ret = do_device_access(sip, scp, sg_off, lba, num, true); in resp_write_scat()
3651 zbc_inc_wp(devip, lba, num); in resp_write_scat()
3653 map_region(sip, lba, num); in resp_write_scat()
3693 static int resp_write_same(struct scsi_cmnd *scp, u64 lba, u32 num, in resp_write_same() argument
3710 ret = check_device_access_params(scp, lba, num, true); in resp_write_same()
3717 unmap_region(sip, lba, num); in resp_write_same()
3720 lbaa = lba; in resp_write_same()
3741 lbaa = lba + i; in resp_write_same()
3746 map_region(sip, lba, num); in resp_write_same()
3749 zbc_inc_wp(devip, lba, num); in resp_write_same()
3760 u32 lba; in resp_write_same_10() local
3772 lba = get_unaligned_be32(cmd + 2); in resp_write_same_10()
3778 return resp_write_same(scp, lba, num, ei_lba, unmap, false); in resp_write_same_10()
3785 u64 lba; in resp_write_same_16() local
3800 lba = get_unaligned_be64(cmd + 2); in resp_write_same_16()
3806 return resp_write_same(scp, lba, num, ei_lba, unmap, ndob); in resp_write_same_16()
3865 u64 lba; in resp_comp_write() local
3872 lba = get_unaligned_be64(cmd + 2); in resp_comp_write()
3886 ret = check_device_access_params(scp, lba, num, false); in resp_comp_write()
3907 if (!comp_write_worker(sip, lba, num, arr, false)) { in resp_comp_write()
3913 map_region(sip, lba, num); in resp_comp_write()
3921 __be64 lba; member
3963 unsigned long long lba = get_unaligned_be64(&desc[i].lba); in resp_unmap() local
3966 ret = check_device_access_params(scp, lba, num, true); in resp_unmap()
3970 unmap_region(sip, lba, num); in resp_unmap()
3988 u64 lba; in resp_get_lba_status() local
3993 lba = get_unaligned_be64(cmd + 2); in resp_get_lba_status()
3999 ret = check_device_access_params(scp, lba, 1, false); in resp_get_lba_status()
4006 mapped = map_state(sip, lba, &num); in resp_get_lba_status()
4011 if (sdebug_capacity - lba <= 0xffffffff) in resp_get_lba_status()
4012 num = sdebug_capacity - lba; in resp_get_lba_status()
4019 put_unaligned_be64(lba, arr + 8); /* LBA */ in resp_get_lba_status()
4030 u64 lba; in resp_sync_cache() local
4035 lba = get_unaligned_be32(cmd + 2); in resp_sync_cache()
4038 lba = get_unaligned_be64(cmd + 2); in resp_sync_cache()
4041 if (lba + num_blocks > sdebug_capacity) { in resp_sync_cache()
4063 u64 lba; in resp_pre_fetch() local
4072 lba = get_unaligned_be32(cmd + 2); in resp_pre_fetch()
4075 lba = get_unaligned_be64(cmd + 2); in resp_pre_fetch()
4078 if (lba + nblks > sdebug_capacity) { in resp_pre_fetch()
4085 block = do_div(lba, sdebug_store_sectors); in resp_pre_fetch()
4212 u64 lba; in resp_verify() local
4229 lba = get_unaligned_be64(cmd + 2); in resp_verify()
4233 lba = get_unaligned_be32(cmd + 2); in resp_verify()
4242 ret = check_device_access_params(scp, lba, a_num, false); in resp_verify()
4269 if (!comp_write_worker(sip, lba, vnum, arr, true)) { in resp_verify()
4290 u64 lba, zs_lba; in resp_report_zones() local
4326 lba = zs_lba + devip->zsize * i; in resp_report_zones()
4327 if (lba > sdebug_capacity) in resp_report_zones()
4329 zsp = zbc_zone(devip, lba); in resp_report_zones()