#1110563 nv_drm_revoke_modeset_permission failure while hardware video decoding under Firefox with VAAPI #1110563
- Package:
- nvidia-kernel-dkms
- Source:
- nvidia-kernel-dkms
- Submitter:
- Jean Diraison
- Date:
- 2026-05-04 12:47:01 UTC
- Severity:
- normal
Dear Maintainer,
I got many video decoding errors with Nvidia RTX 3060 Ti while watching
Twitch (with Error 3000) or Youtube under Firefox with VAAPI and hardware
video decoding activated.
During the last 3 days since I installed new Trixie release, I get more
than 500 module failure.
My config :
Debian Trixie
Kernel 6.12.38+deb13-amd64 #1
Linux boot option : nvidia_drm.modeset=1
Firefox :
shell variable : LIBVA_DRIVER_NAME=nvidia, VD_BACKEND=direct,
MOZ_DISABLE_RDD_SANDBOX=1
about:config : media.rdd-process.enabled true
media.hardware-video-decoding.force-enabled true
media.ffmpeg.vaapi.enabled true
gfx.x11-egl.force-enabled true
Regards.
Here is journalctl kernel output
août 08 17:24:42 saturn kernel: ------------[ cut here ]------------
août 08 17:24:42 saturn kernel: WARNING: CPU: 3 PID: 163259 at
/var/lib/dkms/nvidia-current/550.163.01/build/nvidia-drm/nvidia-drm-drv.c:1220
nv_drm_revoke_modeset_permission+0x327/0x340 [nvidia_drm]
août 08 17:24:42 saturn kernel: Modules linked in: hid_logitech snd_seq_dummy
snd_hrtimer snd_seq snd_seq_device nvidia_uvm(PO) nf_conntrack_netlink
xfrm_user xfrm_algo xt_addrtype br_netfilter xt_CHECKSUM xt_MASQUERADE
xt_conntrack ipt>
août 08 17:24:42 saturn kernel: snd_hda_ext_core binfmt_misc snd_soc_core
irqbypass snd_compress crct10dif_pclmul snd_hda_codec_realtek snd_pcm_dmaengine
snd_hda_codec_generic crc32_pclmul snd_hda_scodec_component nls_ascii
ghash_clmul>
août 08 17:24:42 saturn kernel: parport nvme_keyring efi_pstore configfs
nfnetlink efivarfs ip_tables x_tables autofs4 ext4 crc16 mbcache jbd2
crc32c_generic xhci_pci xhci_hcd nvme usbcore nvme_core crc32c_intel nvme_auth
usb_common fan
août 08 17:24:42 saturn kernel: CPU: 3 UID: 1000 PID: 163259 Comm: vo Tainted:
P W O 6.12.38+deb13-amd64 #1 Debian 6.12.38-1
août 08 17:24:42 saturn kernel: Tainted: [P]=PROPRIETARY_MODULE, [W]=WARN,
[O]=OOT_MODULE
août 08 17:24:42 saturn kernel: Hardware name: HP HP ENVY TE01-2xxx/8860, BIOS
F.26 10/12/2024
août 08 17:24:42 saturn kernel: RIP:
0010:nv_drm_revoke_modeset_permission+0x327/0x340 [nvidia_drm]
août 08 17:24:42 saturn kernel: Code: fd ff ff 49 8d bc 24 70 01 00 00 e8 c3 96
cf e9 e9 57 fd ff ff 49 8d bc 24 70 01 00 00 89 04 24 e8 9e 82 cf e9 8b 04 24
eb 9c <0f> 0b e9 d0 fd ff ff b8 ea ff ff ff e9 4c fd ff ff e8 33 fa ce e9
août 08 17:24:42 saturn kernel: RSP: 0018:ffffb7bd8dc1bca8 EFLAGS: 00010246
août 08 17:24:42 saturn kernel: RAX: 0000000000000000 RBX: ffff976b1fc05e00
RCX: ffffffffc083088a
août 08 17:24:42 saturn kernel: RDX: 0000000000000004 RSI: 0000000000000000
RDI: ffff97699fd04970
août 08 17:24:42 saturn kernel: RBP: ffff976c0a1d9848 R08: ffff976c0a1d9848
R09: 0000000000000000
août 08 17:24:42 saturn kernel: R10: ffffb7bd8dc1bc70 R11: 0000000000000000
R12: ffff97699fd04800
août 08 17:24:42 saturn kernel: R13: ffff976b1fc05ee0 R14: ffff976b1fc05ee0
R15: dead000000000100
août 08 17:24:42 saturn kernel: FS: 00007f7dde7fe6c0(0000)
GS:ffff9770bf980000(0000) knlGS:0000000000000000
août 08 17:24:42 saturn kernel: CS: 0010 DS: 0000 ES: 0000 CR0:
0000000080050033
août 08 17:24:42 saturn kernel: CR2: 00007f7db6ad3f10 CR3: 00000002f9e82006
CR4: 0000000000772ef0
août 08 17:24:42 saturn kernel: PKRU: 55555554
août 08 17:24:42 saturn kernel: Call Trace:
août 08 17:24:42 saturn kernel: <TASK>
août 08 17:24:42 saturn kernel: drm_file_free+0x218/0x270 [drm]
août 08 17:24:42 saturn kernel: drm_release+0x5e/0xd0 [drm]
août 08 17:24:42 saturn kernel: __fput+0xde/0x2a0
août 08 17:24:42 saturn kernel: __x64_sys_close+0x3c/0x80
août 08 17:24:42 saturn kernel: do_syscall_64+0x82/0x190
août 08 17:24:42 saturn kernel: ? __pfx_nv_drm_get_dev_info_ioctl+0x10/0x10
[nvidia_drm]
août 08 17:24:42 saturn kernel: ? syscall_exit_to_user_mode+0x4d/0x210
août 08 17:24:42 saturn kernel: ? do_syscall_64+0x8e/0x190
août 08 17:24:42 saturn kernel: ? do_syscall_64+0x8e/0x190
août 08 17:24:42 saturn kernel: ? exc_page_fault+0x7e/0x180
août 08 17:24:42 saturn kernel: entry_SYSCALL_64_after_hwframe+0x76/0x7e
août 08 17:24:42 saturn kernel: RIP: 0033:0x7f7e7ca3a9ee
août 08 17:24:42 saturn kernel: Code: 08 0f 85 f5 4b ff ff 49 89 fb 48 89 f0 48
89 d7 48 89 ce 4c 89 c2 4d 89 ca 4c 8b 44 24 08 4c 8b 4c 24 10 4c 89 5c 24 08
0f 05 <c3> 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 80 00 00 00 00 48 83 ec 08
août 08 17:24:42 saturn kernel: RSP: 002b:00007f7dde7e84f8 EFLAGS: 00000246
ORIG_RAX: 0000000000000003
août 08 17:24:42 saturn kernel: RAX: ffffffffffffffda RBX: 00007f7dde7fe6c0
RCX: 00007f7e7ca3a9ee
août 08 17:24:42 saturn kernel: RDX: 0000000000000000 RSI: 0000000000000000
RDI: 0000000000000011
août 08 17:24:42 saturn kernel: RBP: 00007f7dde7e8570 R08: 0000000000000000
R09: 0000000000000000
août 08 17:24:42 saturn kernel: R10: 0000000000000000 R11: 0000000000000246
R12: 00007f7dde7e86c0
août 08 17:24:42 saturn kernel: R13: 00007f7dbc15f870 R14: 0000000000000000
R15: 0000000000000011
août 08 17:24:42 saturn kernel: </TASK>
août 08 17:24:42 saturn kernel: ---[ end trace 0000000000000000 ]---
Hello, This bug is not related to Firefox and VAAPI. It is easy to reproduce by setting kernel boot parameter nvidia_drm.modeset=1 in GRUB_CMDLINE_LINUX and execute drm_info command from the drm-info package, in console (even booting in recovery mode). Regards. août 13 00:47:40 saturn kernel: [drm:nv_drm_atomic_commit [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Failed to apply atomic modeset. Error code: -22 août 13 00:47:40 saturn kernel: ------------[ cut here ]------------ août 13 00:47:40 saturn kernel: WARNING: CPU: 8 PID: 637298 at /var/lib/dkms/nvidia-current/550.163.01/build/nvidia-drm/nvidia-drm-drv.c:1220 nv_drm_revoke_modeset_permission+0x327/0x340 [nvidia_drm] août 13 00:47:40 saturn kernel: Modules linked in: vhost_net vhost vhost_iotlb tap tun loop tls hid_logitech snd_seq_dummy snd_hrtimer snd_seq snd_seq_device nvidia_uvm(PO) nf_conntrack_netlink xfrm_user xfrm_algo xt_addrtype br_netfilt> août 13 00:47:40 saturn kernel: nvidia(PO) kvm snd_soc_hda_codec snd_hda_ext_core binfmt_misc snd_soc_core irqbypass snd_compress crct10dif_pclmul snd_hda_codec_realtek snd_pcm_dmaengine snd_hda_codec_generic crc32_pclmul snd_hda_scode> août 13 00:47:40 saturn kernel: drm lp dm_mod nvme_fabrics parport nvme_keyring efi_pstore configfs nfnetlink efivarfs ip_tables x_tables autofs4 ext4 crc16 mbcache jbd2 crc32c_generic xhci_pci xhci_hcd nvme usbcore nvme_core crc32c_in> août 13 00:47:40 saturn kernel: CPU: 8 UID: 1000 PID: 637298 Comm: worker Tainted: P W O 6.12.38+deb13-amd64 #1 Debian 6.12.38-1 août 13 00:47:40 saturn kernel: Tainted: [P]=PROPRIETARY_MODULE, [W]=WARN, [O]=OOT_MODULE août 13 00:47:40 saturn kernel: Hardware name: HP HP ENVY TE01-2xxx/8860, BIOS F.26 10/12/2024 août 13 00:47:40 saturn kernel: RIP: 0010:nv_drm_revoke_modeset_permission+0x327/0x340 [nvidia_drm] août 13 00:47:40 saturn kernel: Code: fd ff ff 49 8d bc 24 70 01 00 00 e8 c3 96 cf e9 e9 57 fd ff ff 49 8d bc 24 70 01 00 00 89 04 24 e8 9e 82 cf e9 8b 04 24 eb 9c <0f> 0b e9 d0 fd ff ff b8 ea ff ff ff e9 4c fd ff ff e8 33 fa ce e9 août 13 00:47:40 saturn kernel: RSP: 0018:ffffb7bda1e27af8 EFLAGS: 00010246 août 13 00:47:40 saturn kernel: RAX: 0000000000000000 RBX: ffff976abf14c800 RCX: ffffffffc083088a août 13 00:47:40 saturn kernel: RDX: 0000000000000004 RSI: 0000000000000000 RDI: ffff97699fd04970 août 13 00:47:40 saturn kernel: RBP: ffff97698508b848 R08: ffff97698508b848 R09: 0000000000000000 août 13 00:47:40 saturn kernel: R10: ffffb7bda1e27ac0 R11: 0000000000000000 R12: ffff97699fd04800 août 13 00:47:40 saturn kernel: R13: ffff976bd7185980 R14: ffff976abf14c8e0 R15: dead000000000100 août 13 00:47:40 saturn kernel: FS: 0000000000000000(0000) GS:ffff9770bfc00000(0000) knlGS:0000000000000000 août 13 00:47:40 saturn kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 août 13 00:47:40 saturn kernel: CR2: 00007f1d844b3000 CR3: 0000000170622001 CR4: 0000000000772ef0 août 13 00:47:40 saturn kernel: PKRU: 55555554 août 13 00:47:40 saturn kernel: Call Trace: août 13 00:47:40 saturn kernel: <TASK> août 13 00:47:40 saturn kernel: nv_drm_master_drop+0x19/0x80 [nvidia_drm] août 13 00:47:40 saturn kernel: drm_master_release+0xbf/0x140 [drm] août 13 00:47:40 saturn kernel: drm_file_free+0x25a/0x270 [drm] août 13 00:47:40 saturn kernel: drm_release+0x5e/0xd0 [drm] août 13 00:47:40 saturn kernel: __fput+0xde/0x2a0 août 13 00:47:40 saturn kernel: task_work_run+0x59/0x90 août 13 00:47:40 saturn kernel: do_exit+0x30c/0xab0 août 13 00:47:40 saturn kernel: ? __pfx_futex_wake_mark+0x10/0x10 août 13 00:47:40 saturn kernel: do_group_exit+0x30/0x80 août 13 00:47:40 saturn kernel: get_signal+0x87c/0x880 août 13 00:47:40 saturn kernel: arch_do_signal_or_restart+0x3f/0x260 août 13 00:47:40 saturn kernel: syscall_exit_to_user_mode+0x1bc/0x210 août 13 00:47:40 saturn kernel: do_syscall_64+0x8e/0x190 août 13 00:47:40 saturn kernel: ? __count_memcg_events+0x53/0xf0 août 13 00:47:40 saturn kernel: ? count_memcg_events.constprop.0+0x1a/0x30 août 13 00:47:40 saturn kernel: ? handle_mm_fault+0x1bb/0x2c0 août 13 00:47:40 saturn kernel: ? flush_tlb_func+0x1d8/0x220 août 13 00:47:40 saturn kernel: ? __pfx_flush_tlb_func+0x10/0x10 août 13 00:47:40 saturn kernel: ? __flush_smp_call_function_queue+0xab/0x410 août 13 00:47:40 saturn kernel: ? __irq_exit_rcu+0x37/0xb0 août 13 00:47:40 saturn kernel: entry_SYSCALL_64_after_hwframe+0x76/0x7e août 13 00:47:40 saturn kernel: RIP: 0033:0x7f49123949ee août 13 00:47:40 saturn kernel: Code: Unable to access opcode bytes at 0x7f49123949c4. août 13 00:47:40 saturn kernel: RSP: 002b:00007f47fcfe91e8 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca août 13 00:47:40 saturn kernel: RAX: fffffffffffffe00 RBX: 00007f47fcff96c0 RCX: 00007f49123949ee août 13 00:47:40 saturn kernel: RDX: 0000000000000000 RSI: 0000000000000189 RDI: 00007f484c803710 août 13 00:47:40 saturn kernel: RBP: 0000000000000000 R08: 0000000000000000 R09: 00000000ffffffff août 13 00:47:40 saturn kernel: R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 août 13 00:47:40 saturn kernel: R13: 00007f484c8036c8 R14: 0000000000000017 R15: 000000000000002e août 13 00:47:40 saturn kernel: </TASK> août 13 00:47:40 saturn kernel: ---[ end trace 0000000000000000 ]---
and correctly identified -- I do have
❯ cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-6.16.7+deb14-amd64 root=UUID=5a65e2d5-fd9f-4e6f-b7f1-54f585ec9164 ro rootflags=subvol=@rootfs nvme_core.default_ps_max_latency_us=10000 nvidia-drm.modeset=1 quiet
and running drm_info triggers it indeed. And it dominates my logs:
❯ journalctl -b -1 | grep 'kernel: WARN' | sed -e 's,.* at ,,g' | sort | uniq -c
60 nvidia-drm/nvidia-drm-drv.c:1220 nv_drm_revoke_modeset_permission+0x358/0x3b0 [nvidia_drm]
❯ journalctl -b -2 | grep 'kernel: WARN' | sed -e 's,.* at ,,g' | sort | uniq -c
58 nvidia-drm/nvidia-drm-drv.c:1220 nv_drm_revoke_modeset_permission+0x358/0x3b0 [nvidia_drm]
❯ journalctl -b -3 | grep 'kernel: WARN' | sed -e 's,.* at ,,g' | sort | uniq -c
62 nvidia-drm/nvidia-drm-drv.c:1220 nv_drm_revoke_modeset_permission+0x358/0x3b0 [nvidia_drm]
system is currently quite unstable (fails to suspend/resume etc) ATM but
not sure if attributes any of the effects to this issue.
The warning seems to come from nvidia-drm/nvidia-drm-helper.h:165: ... #define nv_drm_for_each_connector(connector, conn_iter, dev) \ >> WARN_ON(!mutex_is_locked(&dev->mode_config.mutex)); \ << list_for_each_entry(connector, &(dev)->mode_config.connector_list, head) #endif ... and is a result of wrongly determined "NV_DRM_CONNECTOR_LIST_ITER_PRESENT" macro. The following patch may fix the warnings:--- a/conftest.sh +++ b/conftest.sh @@ -4281,8 +4281,14 @@ # CODE=" #include <drm/drm_connector.h> - int conftest_drm_connector_list_iter(void) { + void conftest_drm_connector_list_iter(struct drm_device *dev) { struct drm_connector_list_iter conn_iter; + struct drm_connector *connector; + drm_connector_list_iter_begin(dev, &conn_iter); + drm_for_each_connector_iter(connector, &conn_iter) { + (void)connector; + } + drm_connector_list_iter_end(&conn_iter); }" compile_check_conftest "$CODE" "NV_DRM_CONNECTOR_LIST_ITER_PRESENT" "" "types" The original test code fails because the compiler treated "function declared int but have no return value" as an error. I don't think the patch will introduce issues, as "drm_for_each_connector_iter" seems the standard way of iterating through connectors since kernel version 4.9.0-rc8.