drm/vkms: fix misuse of WARN_ON
authorDmitry Vyukov <dvyukov@google.com>
Sat, 20 Mar 2021 13:28:40 +0000 (14:28 +0100)
committerMelissa Wen <melissa.srw@gmail.com>
Thu, 25 Mar 2021 11:23:28 +0000 (08:23 -0300)
vkms_vblank_simulate() uses WARN_ON for timing-dependent condition
(timer overrun). This is a mis-use of WARN_ON, WARN_ON must be used
to denote kernel bugs. Use pr_warn() instead.

Signed-off-by: Dmitry Vyukov <dvyukov@google.com>
Reported-by: syzbot+4fc21a003c8332eb0bdd@syzkaller.appspotmail.com
Cc: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
Cc: Melissa Wen <melissa.srw@gmail.com>
Cc: Haneen Mohammed <hamohammed.sa@gmail.com>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: David Airlie <airlied@linux.ie>
Cc: dri-devel@lists.freedesktop.org
Cc: linux-kernel@vger.kernel.org
Acked-by: Melissa Wen <melissa.srw@gmail.com>
Signed-off-by: Melissa Wen <melissa.srw@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210320132840.1315853-1-dvyukov@google.com
drivers/gpu/drm/vkms/vkms_crtc.c

index 6164349..57bbd32 100644 (file)
@@ -22,7 +22,8 @@ static enum hrtimer_restart vkms_vblank_simulate(struct hrtimer *timer)
 
        ret_overrun = hrtimer_forward_now(&output->vblank_hrtimer,
                                          output->period_ns);
-       WARN_ON(ret_overrun != 1);
+       if (ret_overrun != 1)
+               pr_warn("%s: vblank timer overrun\n", __func__);
 
        spin_lock(&output->lock);
        ret = drm_crtc_handle_vblank(crtc);