NVIDIA / NVIDIA/open-gpu-kernel-modules

[Nvidia-dkms-595.84] Missing ENDBR in init_module causes kernel BUG on IBT/CET-enabled kernel (Xanmod Clang)

Open
#1,255 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
C
Stars
17.4k
Forks
1.9k
PR merge metrics
No merged PRs in 30d

Description

NVIDIA Open GPU Kernel Modules Version

595.84 (Installed via Ubuntu DKMS package)

Please confirm this issue does not happen with the proprietary driver (of the same version). This issue tracker is only for bugs specific to the open kernel driver.
  • I confirm that this does not happen with the proprietary driver package.
Operating System and Version

Description: Ubuntu 26.04 LTS

Kernel Release

Linux Nitro-NL16-71G 7.1.4-x64v3-xanmod1 #0~20260718.g967cc06 SMP PREEMPT_DYNAMIC Sat Jul 18 17:42:15 UTC x86_64 GNU/Linux

Please confirm you are running a stable release kernel (e.g. not a -rc). We do not accept bug reports for unreleased kernels.
  • I am running on a stable kernel release.
Hardware: GPU

GPU 0: NVIDIA GeForce RTX 4050 Laptop GPU (UUID: GPU-4096e3ec-fcb2-bd62-c2c3-3f7e49e2ad14)

Describe the bug

When booting a Linux kernel with Indirect Branch Tracking (IBT) strictly enabled (CET detected: Indirect Branch Tracking enabled), loading the nvidia kernel module triggers a hardware control protection fault (do_kernel_cp_fault) and hangs the system.

This occurs because the entry point (init_module) in the NVIDIA kernel module lacks the ENDBR instruction required by Intel CET/IBT.

Environment
  • GPU: NVIDIA GeForce RTX 4050 Laptop GPU (Acer Nitro NL16-71G)
  • CPU: Intel Core i5-13420H (CET/IBT support)
  • Driver Version: 595.84
  • Kernel Version: 7.1.4-x64v3-xanmod1 (Compiled with Clang/LLD, CONFIG_X86_KERNEL_IBT=y)
  • OS: Ubuntu 26.04 LTS

Key Log Snippet
kernel: CET detected: Indirect Branch Tracking enabled
kernel: Missing ENDBR: init_module+0x0/0x340 [nvidia]
kernel: kernel BUG at do_kernel_cp_fault+0xd7/0xe0

To Reproduce

Preconditions:

  • A CPU supporting Intel CET / Indirect Branch Tracking (IBT) (e.g., Intel 11th Gen or newer).
  • A Linux kernel compiled with CONFIG_X86_KERNEL_IBT=y (e.g., Xanmod Linux kernel).
  • NVIDIA Open GPU Kernel Modules installed via DKMS.

Steps to Reproduce:

  1. Configure GRUB boot parameters without ibt=off.
  2. Boot into the IBT-enabled kernel.
  3. Allow the system to boot and attempt loading the nvidia kernel module.
  4. Observe system freeze / soft lockup on boot, accompanied by Missing ENDBR: init_module in kernel logs.

Bug Incidence

Always

nvidia-bug-report.log.gz

nvidia-bug-report.log.gz
error-kernel-log.zip

More Info

Expected Behavior:
The NVIDIA kernel module should load successfully during boot when Intel CET/IBT is enabled (CONFIG_X86_KERNEL_IBT=y), allowing the system to boot into the desktop environment with full GPU hardware acceleration.

Actual Behavior:
The system triggers a kernel BUG (do_kernel_cp_fault) and completely freezes (soft lockup) because the init_module entry point in the NVIDIA driver lacks the required ENDBR instruction for IBT validation.

Additional Context:

  • Passing ibt=off as a kernel boot parameter bypasses the check and works around the crash completely.
  • Attached nvidia-bug-report.log.gz for full system diagnosis.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The report points to the NVIDIA DKMS-built C kernel module and its init_module entry point; start by reproducing on a kernel with CONFIG_X86_KERNEL_IBT=y and inspect the built module around that entry point. Done means the nvidia module loads with IBT enabled without Missing ENDBR, a kernel BUG, or a freeze; validate with the supplied logs and reproduction steps.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, linux
Domain
operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.