Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

vdpa_sim_blk: handle VIRTIO_BLK_T_GET_ID

Handle VIRTIO_BLK_T_GET_ID request, always answering the
"vdpa_blk_sim" string.

Acked-by: Jason Wang <jasowang@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Link: https://lore.kernel.org/r/20210315163450.254396-14-sgarzare@redhat.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

authored by

Stefano Garzarella and committed by
Michael S. Tsirkin
e6fa6052 7d189f61

+15
+15
drivers/vdpa/vdpa_sim/vdpa_sim_blk.c
··· 38 38 #define VDPASIM_BLK_VQ_NUM 1 39 39 40 40 static struct vdpasim *vdpasim_blk_dev; 41 + static char vdpasim_blk_id[VIRTIO_BLK_ID_BYTES] = "vdpa_blk_sim"; 41 42 42 43 static bool vdpasim_blk_check_range(u64 start_sector, size_t range_size) 43 44 { ··· 152 151 status = VIRTIO_BLK_S_IOERR; 153 152 break; 154 153 } 154 + break; 155 + 156 + case VIRTIO_BLK_T_GET_ID: 157 + bytes = vringh_iov_push_iotlb(&vq->vring, &vq->in_iov, 158 + vdpasim_blk_id, 159 + VIRTIO_BLK_ID_BYTES); 160 + if (bytes < 0) { 161 + dev_err(&vdpasim->vdpa.dev, 162 + "vringh_iov_push_iotlb() error: %zd\n", bytes); 163 + status = VIRTIO_BLK_S_IOERR; 164 + break; 165 + } 166 + 167 + pushed += bytes; 155 168 break; 156 169 157 170 default: