On Fri, Mar 15, 2024 at 6:29 PM gavin.liu <gavin.liu@xxxxxxxxxxxxxxx> wrote: > > From: Yuxue Liu <yuxue.liu@xxxxxxxxxxxxxxx> > > In the vp_vdpa_set_status function, when setting the device status to > VIRTIO_CONFIG_S_DRIVER_OK, the vp_vdpa_request_irq function may fail. > In such cases, the device status should not be set to DRIVER_OK. Add > exception printing to remind the user. > > Signed-off-by: Yuxue Liu <yuxue.liu@xxxxxxxxxxxxxxx> > --- > drivers/vdpa/virtio_pci/vp_vdpa.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/vdpa/virtio_pci/vp_vdpa.c b/drivers/vdpa/virtio_pci/vp_vdpa.c > index 281287fae89f..c1270b263867 100644 > --- a/drivers/vdpa/virtio_pci/vp_vdpa.c > +++ b/drivers/vdpa/virtio_pci/vp_vdpa.c > @@ -213,10 +213,16 @@ static void vp_vdpa_set_status(struct vdpa_device *vdpa, u8 status) > struct vp_vdpa *vp_vdpa = vdpa_to_vp(vdpa); > struct virtio_pci_modern_device *mdev = vp_vdpa_to_mdev(vp_vdpa); > u8 s = vp_vdpa_get_status(vdpa); > + struct pci_dev *pdev = mdev->pci_dev; > > if (status & VIRTIO_CONFIG_S_DRIVER_OK && > !(s & VIRTIO_CONFIG_S_DRIVER_OK)) { > - vp_vdpa_request_irq(vp_vdpa); > + if (vp_vdpa_request_irq(vp_vdpa)) { > + WARN_ON(1); > + dev_err(&pdev->dev, > + "vp_vdpa : fail set status is DRIVER_OK\n"); I think having one of the WARN_ON or dev_err should be sufficient. Thanks > + return; > + } > } > > vp_modern_set_status(mdev, status); > -- > 2.43.0 >