Patch "drm/vkms: avoid warning in vkms_get_vblank_timestamp" has been added to the 5.9-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    drm/vkms: avoid warning in vkms_get_vblank_timestamp

to the 5.9-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     drm-vkms-avoid-warning-in-vkms_get_vblank_timestamp.patch
and it can be found in the queue-5.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit bdd20bef7639c0699686eaae3ed3da782e401cbd
Author: Sidong Yang <realwakka@xxxxxxxxx>
Date:   Fri Aug 28 12:45:53 2020 +0000

    drm/vkms: avoid warning in vkms_get_vblank_timestamp
    
    [ Upstream commit 05ca530268a9d0ab3547e7b288635e35990a77c4 ]
    
    This patch avoid the warning in vkms_get_vblank_timestamp when vblanks
    aren't enabled. When running igt test kms_cursor_crc just after vkms
    module, the warning raised like below. Initial value of vblank time is
    zero and hrtimer.node.expires is also zero if vblank aren't enabled
    before. vkms module isn't real hardware but just virtual hardware
    module. so vkms can't generate a resonable timestamp when hrtimer is
    off. it's best to grab the current time.
    
    [106444.464503] [IGT] kms_cursor_crc: starting subtest pipe-A-cursor-size-change
    [106444.471475] WARNING: CPU: 0 PID: 10109 at
    vkms_get_vblank_timestamp+0x42/0x50 [vkms]
    [106444.471511] CPU: 0 PID: 10109 Comm: kms_cursor_crc Tainted: G        W  OE
    5.9.0-rc1+ #6
    [106444.471514] RIP: 0010:vkms_get_vblank_timestamp+0x42/0x50 [vkms]
    [106444.471528] Call Trace:
    [106444.471551]  drm_get_last_vbltimestamp+0xb9/0xd0 [drm]
    [106444.471566]  drm_reset_vblank_timestamp+0x63/0xe0 [drm]
    [106444.471579]  drm_crtc_vblank_on+0x85/0x150 [drm]
    [106444.471582]  vkms_crtc_atomic_enable+0xe/0x10 [vkms]
    [106444.471592]  drm_atomic_helper_commit_modeset_enables+0x1db/0x230
    [drm_kms_helper]
    [106444.471594]  vkms_atomic_commit_tail+0x38/0xc0 [vkms]
    [106444.471601]  commit_tail+0x97/0x130 [drm_kms_helper]
    [106444.471608]  drm_atomic_helper_commit+0x117/0x140 [drm_kms_helper]
    [106444.471622]  drm_atomic_commit+0x4a/0x50 [drm]
    [106444.471629]  drm_atomic_helper_set_config+0x63/0xb0 [drm_kms_helper]
    [106444.471642]  drm_mode_setcrtc+0x1d9/0x7b0 [drm]
    [106444.471654]  ? drm_mode_getcrtc+0x1a0/0x1a0 [drm]
    [106444.471666]  drm_ioctl_kernel+0xb6/0x100 [drm]
    [106444.471677]  drm_ioctl+0x3ad/0x470 [drm]
    [106444.471688]  ? drm_mode_getcrtc+0x1a0/0x1a0 [drm]
    [106444.471692]  ? tomoyo_file_ioctl+0x19/0x20
    [106444.471694]  __x64_sys_ioctl+0x96/0xd0
    [106444.471697]  do_syscall_64+0x37/0x80
    [106444.471699]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Cc: Daniel Vetter <daniel@xxxxxxxx>
    Cc: Rodrigo Siqueira <rodrigosiqueiramelo@xxxxxxxxx>
    Cc: Haneen Mohammed <hamohammed.sa@xxxxxxxxx>
    Cc: Melissa Wen <melissa.srw@xxxxxxxxx>
    
    Signed-off-by: Sidong Yang <realwakka@xxxxxxxxx>
    Reviewed-by: Melissa Wen <melissa.srw@xxxxxxxxx>
    Signed-off-by: Rodrigo Siqueira <rodrigosiqueiramelo@xxxxxxxxx>
    Link: https://patchwork.freedesktop.org/patch/msgid/20200828124553.2178-1-realwakka@xxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/gpu/drm/vkms/vkms_crtc.c b/drivers/gpu/drm/vkms/vkms_crtc.c
index ac85e17428f88..09c012d54d58f 100644
--- a/drivers/gpu/drm/vkms/vkms_crtc.c
+++ b/drivers/gpu/drm/vkms/vkms_crtc.c
@@ -86,6 +86,11 @@ static bool vkms_get_vblank_timestamp(struct drm_crtc *crtc,
 	struct vkms_output *output = &vkmsdev->output;
 	struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
 
+	if (!READ_ONCE(vblank->enabled)) {
+		*vblank_time = ktime_get();
+		return true;
+	}
+
 	*vblank_time = READ_ONCE(output->vblank_hrtimer.node.expires);
 
 	if (WARN_ON(*vblank_time == vblank->time))



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux