From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christian Zigotzky Date: Fri, 05 Nov 2021 18:05:22 +0000 Subject: Re: [PATCH] drm/virtio: Fix NULL dereference error in virtio_gpu_poll Message-Id: List-Id: References: <15731ad7-83ff-c7ef-e4a1-8b11814572c2@xenosoft.de> <20211104214249.1802789-1-vivek.kasireddy@intel.com> In-Reply-To: <20211104214249.1802789-1-vivek.kasireddy@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit To: Vivek Kasireddy , dri-devel@lists.freedesktop.org Cc: Darren Stevens , mad skateman , "kvm-ppc@vger.kernel.org" , Gurchetan Singh , Gerd Hoffmann , "R.T.Dickinson" , linuxppc-dev , Christian Zigotzky On 04 November 2021 at 10:42 pm, Vivek Kasireddy wrote: > When virgl is not enabled, vfpriv pointer would not be allocated. > Therefore, check for a valid value before dereferencing. > > Reported-by: Christian Zigotzky > Cc: Gurchetan Singh > Cc: Gerd Hoffmann > Signed-off-by: Vivek Kasireddy > --- >  drivers/gpu/drm/virtio/virtgpu_drv.c | 3 ++- >  1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/virtio/virtgpu_drv.c b/drivers/gpu/drm/virtio/virtgpu_drv.c > index 749db18dcfa2..d86e1ad4a972 100644 > --- a/drivers/gpu/drm/virtio/virtgpu_drv.c > +++ b/drivers/gpu/drm/virtio/virtgpu_drv.c > @@ -163,10 +163,11 @@ static __poll_t virtio_gpu_poll(struct file *filp, >      struct drm_file *drm_file = filp->private_data; >      struct virtio_gpu_fpriv *vfpriv = drm_file->driver_priv; >      struct drm_device *dev = drm_file->minor->dev; > +    struct virtio_gpu_device *vgdev = dev->dev_private; >      struct drm_pending_event *e = NULL; >      __poll_t mask = 0; > > -    if (!vfpriv->ring_idx_mask) > +    if (!vgdev->has_virgl_3d || !vfpriv || !vfpriv->ring_idx_mask) >          return drm_poll(filp, wait); > >      poll_wait(filp, &drm_file->event_wait, wait); Tested-by: Christian Zigotzky [1] [1] https://i.ibb.co/N1vL5Kd/Kernel-5-16-alpha3-Power-PC.png