On 10/20/22 06:38, Dmitry Osipenko wrote: > On 10/20/22 06:23, kernel test robot wrote: >> Greeting, >> >> FYI, we noticed WARNING:at_drivers/gpu/drm/drm_gem.c:#drm_gem_vunmap due to commit (built with clang-14): >> >> commit: 79e2cf2e7a193473dfb0da3b9b869682b43dc60f ("drm/gem: Take reservation lock for vmap/vunmap operations") >> git://anongit.freedesktop.org/drm/drm-misc drm-misc-next >> >> in testcase: boot >> >> on test machine: qemu-system-i386 -enable-kvm -cpu SandyBridge -smp 2 -m 4G >> >> caused below changes (please refer to attached dmesg/kmsg for entire log/backtrace): >> >> >> [ 5.483437][ T1] ------------[ cut here ]------------ >> [ 5.484265][ T1] WARNING: CPU: 1 PID: 1 at drivers/gpu/drm/drm_gem.c:1191 drm_gem_vunmap+0x50/0xa0 >> [ 5.485640][ T1] Modules linked in: >> [ 5.486298][ T1] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 6.0.0-rc2-00895-g79e2cf2e7a19 #1 d064e7e3c98977ac595341fa8e33617722110e67 >> [ 5.488083][ T1] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.0-debian-1.16.0-4 04/01/2014 >> [ 5.489590][ T1] EIP: drm_gem_vunmap+0x50/0xa0 >> [ 5.490359][ T1] Code: ff ff e8 f3 29 97 00 85 c0 0f 94 c3 eb 02 31 db 0f b6 fb b8 90 74 8e c3 89 fa 31 c9 6a 00 e8 77 ca 7b ff 83 c4 04 84 db 74 02 <0f> 0b b8 a8 74 8e c3 89 fa 31 c9 6a 00 e8 5e ca 7b ff 83 c4 04 83 >> [ 5.493049][ T1] EAX: c38e74a0 EBX: ffffff01 ECX: 00000000 EDX: 00000001 >> [ 5.494179][ T1] ESI: c6d8b870 EDI: 00000001 EBP: c46d7d34 ESP: c46d7d24 >> [ 5.495296][ T1] DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068 EFLAGS: 00010202 >> [ 5.496530][ T1] CR0: 80050033 CR2: 00000000 CR3: 03aa0000 CR4: 000406d0 >> [ 5.497647][ T1] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000 >> [ 5.498759][ T1] DR6: fffe0ff0 DR7: 00000400 >> [ 5.499486][ T1] Call Trace: >> [ 5.500104][ T1] drm_client_buffer_delete+0x1d/0x90 >> [ 5.500877][ T1] drm_client_framebuffer_delete+0x37/0x60 >> [ 5.501805][ T1] drm_fbdev_cleanup+0x80/0x90 >> [ 5.502653][ T1] drm_fbdev_client_hotplug+0x1b6/0x210 >> [ 5.503585][ T1] drm_fbdev_generic_setup+0x143/0x1a0 >> [ 5.504571][ T1] vkms_init+0x23f/0x244 >> [ 5.505338][ T1] ? vgem_init+0x133/0x133 >> [ 5.506130][ T1] do_one_initcall+0x10e/0x210 >> [ 5.506976][ T1] ? vgem_init+0x133/0x133 >> [ 5.507775][ T1] do_initcall_level+0x80/0x92 >> [ 5.508630][ T1] do_initcalls+0x41/0x6f >> [ 5.509386][ T1] do_basic_setup+0x17/0x19 >> [ 5.510106][ T1] kernel_init_freeable+0xb4/0xe5 >> [ 5.510970][ T1] ? rest_init+0x180/0x180 >> [ 5.511745][ T1] kernel_init+0x17/0x180 >> [ 5.512522][ T1] ret_from_fork+0x19/0x24 >> [ 5.513333][ T1] irq event stamp: 118087 >> [ 5.514101][ T1] hardirqs last enabled at (118097): [<c1107774>] __up_console_sem+0x64/0xb0 >> [ 5.515620][ T1] hardirqs last disabled at (118110): [<c110775b>] __up_console_sem+0x4b/0xb0 >> [ 5.517061][ T1] softirqs last enabled at (117834): [<c236bd86>] __do_softirq+0x2c6/0x329 >> [ 5.518391][ T1] softirqs last disabled at (117825): [<c102bb62>] do_softirq_own_stack+0x22/0x30 >> [ 5.519760][ T1] ---[ end trace 0000000000000000 ]--- > > That's a good catch, I missed to touch drm_client.c. At a quick glance > will be fine to switch it to the unlocked drm_gem_vun/map functions. Actually, I only missed to switch the drm_client_buffer_delete() to the unlocked vunmap. The rest of drm_client.c is okay. I'll prepare the fix. -- Best regards, Dmitry