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

Configure Feed

Select the types of activity you want to include in your feed.

vdpa/vp_vdpa: implement kick_vq_with_data callback

Implement the kick_vq_with_data vDPA callback.
On kick, we pass the next available data to the hardware by writing it in
the kick offset.

Signed-off-by: Yuxue Liu <yuxue.liu@jaguarmicro.com>
Message-Id: <20241203023743.1757-1-yuxue.liu@jaguarmicro.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>

authored by

Yuxue Liu and committed by
Michael S. Tsirkin
33bb2d16 302b49da

+9
+9
drivers/vdpa/virtio_pci/vp_vdpa.c
··· 367 367 vp_iowrite16(qid, vp_vdpa->vring[qid].notify); 368 368 } 369 369 370 + static void vp_vdpa_kick_vq_with_data(struct vdpa_device *vdpa, u32 data) 371 + { 372 + struct vp_vdpa *vp_vdpa = vdpa_to_vp(vdpa); 373 + u16 qid = data & 0xFFFF; 374 + 375 + vp_iowrite32(data, vp_vdpa->vring[qid].notify); 376 + } 377 + 370 378 static u32 vp_vdpa_get_generation(struct vdpa_device *vdpa) 371 379 { 372 380 struct virtio_pci_modern_device *mdev = vdpa_to_mdev(vdpa); ··· 480 472 .get_vq_size = vp_vdpa_get_vq_size, 481 473 .set_vq_address = vp_vdpa_set_vq_address, 482 474 .kick_vq = vp_vdpa_kick_vq, 475 + .kick_vq_with_data = vp_vdpa_kick_vq_with_data, 483 476 .get_generation = vp_vdpa_get_generation, 484 477 .get_device_id = vp_vdpa_get_device_id, 485 478 .get_vendor_id = vp_vdpa_get_vendor_id,