OSDN Git Service

virtio-gpu: fix shift wrapping bug in virtio_gpu_fence_event_create()
authorDan Carpenter <dan.carpenter@oracle.com>
Mon, 19 Sep 2022 06:36:30 +0000 (09:36 +0300)
committerGerd Hoffmann <kraxel@redhat.com>
Fri, 23 Sep 2022 11:16:37 +0000 (13:16 +0200)
The ->ring_idx_mask variable is a u64 so static checkers, Smatch in
this case, complain if the BIT() is not also a u64.

drivers/gpu/drm/virtio/virtgpu_ioctl.c:50 virtio_gpu_fence_event_create()
warn: should '(1 << ring_idx)' be a 64 bit type?

Fixes: cd7f5ca33585 ("drm/virtio: implement context init: add virtio_gpu_fence_event")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Link: http://patchwork.freedesktop.org/patch/msgid/YygN7jY0GdUSQSy0@kili
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
drivers/gpu/drm/virtio/virtgpu_ioctl.c

index 3b17016..5d05093 100644 (file)
@@ -47,7 +47,7 @@ static int virtio_gpu_fence_event_create(struct drm_device *dev,
        struct virtio_gpu_fence_event *e = NULL;
        int ret;
 
-       if (!(vfpriv->ring_idx_mask & (1 << ring_idx)))
+       if (!(vfpriv->ring_idx_mask & BIT_ULL(ring_idx)))
                return 0;
 
        e = kzalloc(sizeof(*e), GFP_KERNEL);