Error: ‘const struct drm_mode_config_funcs’ has no member named ‘output_poll_changed’

Compiling error:


  CC [M]  /tmp/selfgz19470/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-drm/nvidia-drm-helper.o
/tmp/selfgz19470/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-drm/nvidia-drm-drv.c:207:6: error: ‘const struct drm_mode_config_funcs’ has no member named ‘output_poll_changed’
  207 |     .output_poll_changed = nv_drm_output_poll_changed,
      |      ^~~~~~~~~~~~~~~~~~~
/tmp/selfgz19470/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-drm/nvidia-drm-drv.c:207:28: error: initialization of ‘struct drm_atomic_state * (*)(struct drm_device *)’ from incompatible pointer type ‘void (*)(
struct drm_device *)’ [-Wincompatible-pointer-types]
  207 |     .output_poll_changed = nv_drm_output_poll_changed,
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/selfgz19470/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-drm/nvidia-drm-drv.c:207:28: note: (near initialization for ‘nv_mode_config_funcs.atomic_state_alloc’)
make[3]: *** [scripts/Makefile.build:244: /tmp/selfgz19470/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-drm/nvidia-drm-drv.o] Error 1

Kernel: 6.11.0-rc6 - drm-tip today - 09/07/2024.
Nvidia driver: 560.35.03.

Executable: NVIDIA-Linux-x86_64-560.35.03.run

Commit that causes this issue:

nvidia-installer.log (107.0 KB)

1 Like

This change will be part of 6.12-rc1: drm: Remove struct drm_mode_config_funcs.output_poll_changed · torvalds/linux@446d0f4 · GitHub

1 Like

Hi
I have the same issue building today’s v6.12-rc6 from kernel.org.
After a look in the code, the patch 446d0f48 had already been applied (code is the same as in v6.12-rc1)

After building debian kernel package of linux-6.12-rc6, while installing the debian created package, DKMS run to build NVIDIA module version 535.183.06.
It failed with error :

Configure linux-image-6.12.0-rc6-amd64 (6.12.0-rc6-1) ...
dkms: running auto installation service for kernel 6.12.0-rc6-amd64.
Sign command: /lib/modules/6.12.0-rc6-amd64/build/scripts/sign-file
Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub

Building module:
Cleaning build area...
env NV_VERBOSE=1 make -j40 modules KERNEL_UNAME=6.12.0-rc6-amd64.............................(bad exit status: 2)
Error! Bad return status for module build on kernel: 6.12.0-rc6-amd64 (x86_64)
Consult /var/lib/dkms/nvidia-current/535.183.06/build/make.log for more information.
Error! One or more modules failed to install during autoinstall.
Refer to previous errors for more information.
dkms: autoinstall for kernel: 6.12.0-rc6-amd64 failed!
run-parts: /etc/kernel/postinst.d/dkms exited with return code 11

Having a look at the logfile, I found :

$ grep -i " error" /var/lib/dkms/nvidia-current/535.183.06/build/make.log
/var/lib/dkms/nvidia-current/535.183.06/build/nvidia-drm/nvidia-drm-drv.c:188:6: error: ‘const struct drm_mode_config_funcs’ has no member named ‘output_poll_changed’
/var/lib/dkms/nvidia-current/535.183.06/build/nvidia-drm/nvidia-drm-drv.c:188:28: error: initialization of ‘struct drm_atomic_state * (*)(struct drm_device *)’ from incompatible pointer type ‘void (*)(struct drm_device *)’ [-Werror=incompatible-pointer-types]
cc1: some warnings being treated as errors

Google-ing the error message let me arrives here.

Any idea ?

Kind regards

Hi
I’m sorry for my last post, I was trying to use nvidia-driver packaged by Debian12 distribution.
Building linux-6.12-rc6 with NVIDIA DRIVER Linux-x86_64 version 535.216.01 was successfull with no issues !

So it seems that 535.183.06 version couldn’t be build with mainline kernel, user must use the last NVIDIA DRIVER version (here it works with 535.216.01) to build and use mainline kernel (ie 6.12-rc6 at the time I’m writing).

Kind regards

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.