On Wed, Jan 10, 2024 at 9:40 PM Steve Sistare <steven.sistare@xxxxxxxxxx> wrote: > > vdpasim_do_reset sets running to true, which is wrong, as it allows > vdpasim_kick_vq to post work requests before the device has been > configured. To fix, do not set running until VIRTIO_CONFIG_S_FEATURES_OK > is set. > > Signed-off-by: Steve Sistare <steven.sistare@xxxxxxxxxx> Good catch, thanks! Please send this separately so it can be merged independently. Also, the Fixes tag is missing, isn't it? Fixes: 0c89e2a3a9d0 ("vdpa_sim: Implement suspend vdpa op") Reviewed-by: Eugenio Pérez <eperezma@xxxxxxxxxx> > --- > drivers/vdpa/vdpa_sim/vdpa_sim.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/vdpa/vdpa_sim/vdpa_sim.c b/drivers/vdpa/vdpa_sim/vdpa_sim.c > index be2925d0d283..6304cb0b4770 100644 > --- a/drivers/vdpa/vdpa_sim/vdpa_sim.c > +++ b/drivers/vdpa/vdpa_sim/vdpa_sim.c > @@ -160,7 +160,7 @@ static void vdpasim_do_reset(struct vdpasim *vdpasim, u32 flags) > } > } > > - vdpasim->running = true; > + vdpasim->running = false; > spin_unlock(&vdpasim->iommu_lock); > > vdpasim->features = 0; > @@ -483,6 +483,7 @@ static void vdpasim_set_status(struct vdpa_device *vdpa, u8 status) > > mutex_lock(&vdpasim->mutex); > vdpasim->status = status; > + vdpasim->running = (status & VIRTIO_CONFIG_S_FEATURES_OK) != 0; > mutex_unlock(&vdpasim->mutex); > } > > -- > 2.39.3 >