Patch "vdpa_sim: fix vringh initialization in vdpasim_queue_ready()" has been added to the 5.15-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    vdpa_sim: fix vringh initialization in vdpasim_queue_ready()

to the 5.15-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     vdpa_sim-fix-vringh-initialization-in-vdpasim_queue_.patch
and it can be found in the queue-5.15 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 92cb518cc49f256f673f8d6135639391e3f601c2
Author: Stefano Garzarella <sgarzare@xxxxxxxxxx>
Date:   Thu Nov 10 15:13:35 2022 +0100

    vdpa_sim: fix vringh initialization in vdpasim_queue_ready()
    
    [ Upstream commit 794ec498c9fa79e6bfd71b931410d5897a9c00d4 ]
    
    When we initialize vringh, we should pass the features and the
    number of elements in the virtqueue negotiated with the driver,
    otherwise operations with vringh may fail.
    
    This was discovered in a case where the driver sets a number of
    elements in the virtqueue different from the value returned by
    .get_vq_num_max().
    
    In vdpasim_vq_reset() is safe to initialize the vringh with
    default values, since the virtqueue will not be used until
    vdpasim_queue_ready() is called again.
    
    Fixes: 2c53d0f64c06 ("vdpasim: vDPA device simulator")
    Signed-off-by: Stefano Garzarella <sgarzare@xxxxxxxxxx>
    Message-Id: <20221110141335.62171-1-sgarzare@xxxxxxxxxx>
    Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
    Acked-by: Jason Wang <jasowang@xxxxxxxxxx>
    Acked-by: Eugenio Pérez <eperezma@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/vdpa/vdpa_sim/vdpa_sim.c b/drivers/vdpa/vdpa_sim/vdpa_sim.c
index 2faf3bd1c3ba..4d9e3fdae5f6 100644
--- a/drivers/vdpa/vdpa_sim/vdpa_sim.c
+++ b/drivers/vdpa/vdpa_sim/vdpa_sim.c
@@ -66,8 +66,7 @@ static void vdpasim_queue_ready(struct vdpasim *vdpasim, unsigned int idx)
 {
 	struct vdpasim_virtqueue *vq = &vdpasim->vqs[idx];
 
-	vringh_init_iotlb(&vq->vring, vdpasim->dev_attr.supported_features,
-			  VDPASIM_QUEUE_MAX, false,
+	vringh_init_iotlb(&vq->vring, vdpasim->features, vq->num, false,
 			  (struct vring_desc *)(uintptr_t)vq->desc_addr,
 			  (struct vring_avail *)
 			  (uintptr_t)vq->driver_addr,



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux