Driver fails to compile after this commit:
commit 313dd1b629219db50cad532dba6a3b3b22ffe622
Author: Kees Cook keescook@chromium.org
Date: Fri May 5 23:37:45 2017 -0700
gcc-plugins: Add the randstruct plugin
and CONFIG_GCC_PLUGIN_RANDSTRUCT=y. Error messages:
/usr/src/valdis/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-modeset/nvidia-modeset-linux.c:340:5: error: positional initialization of field in ‘struct’ de
clared with ‘designated_init’ attribute [-Werror=designated-init]
nvkms_suspend,
^~~~~~~~~~~~~
/usr/src/valdis/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-modeset/nvidia-modeset-linux.c:340:5: note: (near initialization for ‘nvkms_rm_callbacks’)
/usr/src/valdis/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-modeset/nvidia-modeset-linux.c:340:5: error: invalid initializer
/usr/src/valdis/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-modeset/nvidia-modeset-linux.c:340:5: note: (near initialization for ‘nvkms_rm_callbacks.’)
/usr/src/valdis/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-modeset/nvidia-modeset-linux.c:341:5: error: positional initialization of field in ‘struct’ de
clared with ‘designated_init’ attribute [-Werror=designated-init]
nvkms_resume
^~~~~~~~~~~~
/usr/src/valdis/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-modeset/nvidia-modeset-linux.c:341:5: note: (near initialization for ‘nvkms_rm_callbacks’)
Patch for this: (Backward compatible to older kernels, so no conftest magic needed):
— nvidia-modeset/nvidia-modeset-linux.c.dist 2017-07-20 04:25:38.000000000 -0400
+++ nvidia-modeset/nvidia-modeset-linux.c 2017-08-02 14:44:22.979688575 -0400
@@ -337,8 +337,8 @@
static nvidia_modeset_rm_ops_t __rm_ops = { 0 };
static nvidia_modeset_callbacks_t nvkms_rm_callbacks = {
- nvkms_suspend,
- nvkms_resume
- .suspend = nvkms_suspend,
- .resume = nvkms_resume
};
static int nvkms_alloc_rm(void)
v4.13-rc1-patch.txt (427 Bytes)