Lines Matching refs:vdpasim

49 static bool vdpasim_blk_check_range(struct vdpasim *vdpasim, u64 start_sector,  in vdpasim_blk_check_range()  argument
53 dev_dbg(&vdpasim->vdpa.dev, in vdpasim_blk_check_range()
59 dev_dbg(&vdpasim->vdpa.dev, in vdpasim_blk_check_range()
66 dev_dbg(&vdpasim->vdpa.dev, in vdpasim_blk_check_range()
79 static bool vdpasim_blk_handle_req(struct vdpasim *vdpasim, in vdpasim_blk_handle_req() argument
98 dev_dbg(&vdpasim->vdpa.dev, "missing headers - out_iov: %u in_iov %u\n", in vdpasim_blk_handle_req()
104 dev_dbg(&vdpasim->vdpa.dev, "request in header too short\n"); in vdpasim_blk_handle_req()
118 dev_dbg(&vdpasim->vdpa.dev, "request out header too short\n"); in vdpasim_blk_handle_req()
124 type = vdpasim32_to_cpu(vdpasim, hdr.type); in vdpasim_blk_handle_req()
125 sector = vdpasim64_to_cpu(vdpasim, hdr.sector); in vdpasim_blk_handle_req()
131 dev_dbg(&vdpasim->vdpa.dev, in vdpasim_blk_handle_req()
140 if (!vdpasim_blk_check_range(vdpasim, sector, in vdpasim_blk_handle_req()
148 vdpasim->buffer + offset, in vdpasim_blk_handle_req()
151 dev_dbg(&vdpasim->vdpa.dev, in vdpasim_blk_handle_req()
162 if (!vdpasim_blk_check_range(vdpasim, sector, in vdpasim_blk_handle_req()
170 vdpasim->buffer + offset, in vdpasim_blk_handle_req()
173 dev_dbg(&vdpasim->vdpa.dev, in vdpasim_blk_handle_req()
186 dev_dbg(&vdpasim->vdpa.dev, in vdpasim_blk_handle_req()
205 dev_dbg(&vdpasim->vdpa.dev, in vdpasim_blk_handle_req()
215 dev_dbg(&vdpasim->vdpa.dev, in vdpasim_blk_handle_req()
228 dev_dbg(&vdpasim->vdpa.dev, in vdpasim_blk_handle_req()
237 dev_dbg(&vdpasim->vdpa.dev, in vdpasim_blk_handle_req()
244 if (!vdpasim_blk_check_range(vdpasim, sector, num_sectors, in vdpasim_blk_handle_req()
251 memset(vdpasim->buffer + offset, 0, in vdpasim_blk_handle_req()
258 dev_dbg(&vdpasim->vdpa.dev, in vdpasim_blk_handle_req()
291 struct vdpasim *vdpasim = container_of(work, struct vdpasim, work); in vdpasim_blk_work() local
295 spin_lock(&vdpasim->lock); in vdpasim_blk_work()
297 if (!(vdpasim->status & VIRTIO_CONFIG_S_DRIVER_OK)) in vdpasim_blk_work()
300 if (!vdpasim->running) in vdpasim_blk_work()
304 struct vdpasim_virtqueue *vq = &vdpasim->vqs[i]; in vdpasim_blk_work()
310 while (vdpasim_blk_handle_req(vdpasim, vq)) { in vdpasim_blk_work()
326 spin_unlock(&vdpasim->lock); in vdpasim_blk_work()
329 schedule_work(&vdpasim->work); in vdpasim_blk_work()
332 static void vdpasim_blk_get_config(struct vdpasim *vdpasim, void *config) in vdpasim_blk_get_config() argument
338 blk_config->capacity = cpu_to_vdpasim64(vdpasim, VDPASIM_BLK_CAPACITY); in vdpasim_blk_get_config()
339 blk_config->size_max = cpu_to_vdpasim32(vdpasim, VDPASIM_BLK_SIZE_MAX); in vdpasim_blk_get_config()
340 blk_config->seg_max = cpu_to_vdpasim32(vdpasim, VDPASIM_BLK_SEG_MAX); in vdpasim_blk_get_config()
341 blk_config->num_queues = cpu_to_vdpasim16(vdpasim, VDPASIM_BLK_VQ_NUM); in vdpasim_blk_get_config()
342 blk_config->min_io_size = cpu_to_vdpasim16(vdpasim, 1); in vdpasim_blk_get_config()
343 blk_config->opt_io_size = cpu_to_vdpasim32(vdpasim, 1); in vdpasim_blk_get_config()
344 blk_config->blk_size = cpu_to_vdpasim32(vdpasim, SECTOR_SIZE); in vdpasim_blk_get_config()
347 cpu_to_vdpasim32(vdpasim, SECTOR_SIZE); in vdpasim_blk_get_config()
349 cpu_to_vdpasim32(vdpasim, VDPASIM_BLK_DWZ_MAX_SECTORS); in vdpasim_blk_get_config()
350 blk_config->max_discard_seg = cpu_to_vdpasim32(vdpasim, 1); in vdpasim_blk_get_config()
353 cpu_to_vdpasim32(vdpasim, VDPASIM_BLK_DWZ_MAX_SECTORS); in vdpasim_blk_get_config()
354 blk_config->max_write_zeroes_seg = cpu_to_vdpasim32(vdpasim, 1); in vdpasim_blk_get_config()
371 struct vdpasim *simdev; in vdpasim_blk_dev_add()
381 dev_attr.alloc_size = sizeof(struct vdpasim); in vdpasim_blk_dev_add()
405 struct vdpasim *simdev = container_of(dev, struct vdpasim, vdpa); in vdpasim_blk_dev_del()