Bug#870677: nvidia-kernel-dkms: Doesn't compile with kernel 4.11 (and probably later)

Luca Boccassi luca.boccassi at gmail.com
Wed Aug 9 08:25:51 UTC 2017


On Mon, 2017-08-07 at 03:12 +0200, Andreas Beckmann wrote:
> On 2017-08-04 03:09, Jiri Palecek wrote:
> > Package: nvidia-kernel-dkms
> > Version: 378.13-1
> 
> Hi Luca,
> 
> I tried to backport two patches from 340 (couldn't find the place
> where the third should be applied now), but that is not sufficient
> ...
> 
> conftest result changes with these patches applied (this may already
> indicate the problem):
> 4.10.0-trunk-amd64 -> 4.11.0-1-amd64
> 
> -#undef NV_VM_OPS_FAULT_REMOVED_VMA_ARG
> +#define NV_VM_OPS_FAULT_REMOVED_VMA_ARG
> 
> -#define NV_DRM_HELPER_MODE_FILL_FB_STRUCT_HAS_CONST_MODE_CMD_ARG
> +#undef NV_DRM_HELPER_MODE_FILL_FB_STRUCT_HAS_CONST_MODE_CMD_ARG
> 
> 
> and it is failing here:
> 
>   if [ "-pg" = "-pg" ]; then if [ /usr/src/modules/nvidia-
> kernel/nvidia-uvm/uvm8_gpu.o != "scripts/mod/empty.o" ]; then
> ./scripts/recordmcount  "/usr/src/modules/nvidia-kernel/nvidia-
> uvm/uvm8_gpu.o"; fi; fi;
>    gcc-6 -Wp,-MD,/usr/src/modules/nvidia-kernel/nvidia-
> uvm/.uvm8_gpu_isr.o.d  -nostdinc -isystem /usr/lib/gcc/x86_64-linux-
> gnu/6/include -I/usr/src/linux-headers-4.11.0-1-
> common/arch/x86/include -I./arch/x86/includ
> e/generated/uapi -I./arch/x86/include/generated  -I/usr/src/linux-
> headers-4.11.0-1-common/include -I./include -I/usr/src/linux-headers-
> 4.11.0-1-common/arch/x86/include/uapi -I/usr/src/linux-headers-
> 4.11.0-1-common/
> include/uapi -I./include/generated/uapi -include /usr/src/linux-
> headers-4.11.0-1-common/include/linux/kconfig.h  -
> I/usr/src/modules/nvidia-kernel -I/usr/src/modules/nvidia-kernel
> -D__KERNEL__ -Wall -Wundef -Wstrict
> -prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-
> implicit-function-declaration -Wno-format-security -std=gnu89 -fno-
> PIE -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-
> jumps=1 -falig
> n-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3
> -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-
> at-a-time -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1
> -DCONFIG_AS_CFI_SIGNAL_FRAM
> E=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1
> -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1
> -DCONFIG_AS_AVX2=1 -DCONFIG_AS_AVX512=1 -DCONFIG_AS_SHA1_NI=1
> -DCONFIG_AS_SHA256_NI=1 -pipe -Wno-sign-c
> ompare -fno-asynchronous-unwind-tables -fno-delete-null-pointer-
> checks -Wno-frame-address -O2 --param=allow-store-data-races=0
> -DCC_HAVE_ASM_GOTO -Wframe-larger-than=2048 -fstack-protector-strong
> -Wno-unused-but-se
> t-variable -Wno-unused-const-variable -fno-var-tracking-assignments
> -g -pg -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wno-
> pointer-sign -fno-strict-overflow -fconserve-stack -Werror=implicit-
> int -Werr
> or=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-
> types  -I/usr/src/modules/nvidia-kernel/common/inc  -
> I/usr/src/modules/nvidia-kernel -Wall -MD -Wsign-compare -Wno-cast-
> qual -Wno-error -D__KERNEL
> __ -DMODULE -DNVRM -DNV_VERSION_STRING=\"378.13\" -Wno-unused-
> function -Wuninitialized -fno-strict-aliasing -mno-red-zone
> -mcmodel=kernel -DNV_UVM_ENABLE -Wno-sign-compare -Wno-format-extra-
> args -Werror=undef -O2 -
> DNVIDIA_UVM_ENABLED -DNVIDIA_UNDEF_LEGACY_BIT_MACROS -DLinux
> -D__linux__  -I/usr/src/modules/nvidia-kernel/nvidia-uvm  -DMODULE  -
> DKBUILD_BASENAME='"uvm8_gpu_isr"'  -DKBUILD_MODNAME='"nvidia_uvm"' -c
> -o /usr/src/mo
> dules/nvidia-kernel/nvidia-uvm/.tmp_uvm8_gpu_isr.o
> /usr/src/modules/nvidia-kernel/nvidia-uvm/uvm8_gpu_isr.c
> In file included from /usr/src/modules/nvidia-kernel/nvidia-
> uvm/uvm8_global.h:29:0,
>                  from /usr/src/modules/nvidia-kernel/nvidia-
> uvm/uvm8_gpu_isr.c:24:
> /usr/src/modules/nvidia-kernel/nvidia-uvm/uvm8_gpu_isr.c: In function
> 'uvm_gpu_replayable_faults_isr_unlock':
> /usr/src/modules/nvidia-kernel/nvidia-uvm/uvm8_gpu_isr.c:273:28:
> error: passing argument 1 of 'atomic_read' from incompatible pointer
> type [-Werror=incompatible-pointer-types]
>      UVM_ASSERT(atomic_read(&gpu->gpu_kref.refcount) > 0);
>                             ^
> /usr/src/modules/nvidia-kernel/nvidia-uvm/uvm_common.h:138:45: note:
> in definition of macro 'UVM_IGNORE_EXPR'
>  #define UVM_IGNORE_EXPR(expr) ((void)sizeof(expr))
>                                              ^~~~
> /usr/src/modules/nvidia-kernel/nvidia-uvm/uvm_common.h:168:26: note:
> in expansion of macro '_UVM_ASSERT_MSG'
>  #define UVM_ASSERT(expr) _UVM_ASSERT_MSG(expr, #expr, "\n")
>                           ^~~~~~~~~~~~~~~
> /usr/src/modules/nvidia-kernel/nvidia-uvm/uvm8_gpu_isr.c:273:5: note:
> in expansion of macro 'UVM_ASSERT'
>      UVM_ASSERT(atomic_read(&gpu->gpu_kref.refcount) > 0);
>      ^~~~~~~~~~
> In file included from /usr/src/linux-headers-4.11.0-1-
> common/arch/x86/include/asm/msr.h:66:0,
>                  from /usr/src/linux-headers-4.11.0-1-
> common/arch/x86/include/asm/processor.h:20,
>                  from /usr/src/linux-headers-4.11.0-1-
> common/arch/x86/include/asm/cpufeature.h:4,
>                  from /usr/src/linux-headers-4.11.0-1-
> common/arch/x86/include/asm/thread_info.h:52,
>                  from /usr/src/linux-headers-4.11.0-1-
> common/include/linux/thread_info.h:25,
>                  from /usr/src/linux-headers-4.11.0-1-
> common/arch/x86/include/asm/preempt.h:6,
>                  from /usr/src/linux-headers-4.11.0-1-
> common/include/linux/preempt.h:80,
>                  from /usr/src/linux-headers-4.11.0-1-
> common/include/linux/spinlock.h:50,
>                  from /usr/src/linux-headers-4.11.0-1-
> common/include/linux/mmzone.h:7,
>                  from /usr/src/linux-headers-4.11.0-1-
> common/include/linux/gfp.h:5,
>                  from /usr/src/linux-headers-4.11.0-1-
> common/include/linux/mm.h:9,
>                  from /usr/src/modules/nvidia-kernel/common/inc/nv-
> pgprot.h:17,
>                  from /usr/src/modules/nvidia-kernel/common/inc/nv-
> linux.h:17,
>                  from /usr/src/modules/nvidia-kernel/nvidia-
> uvm/uvm_linux.h:39,
>                  from /usr/src/modules/nvidia-kernel/nvidia-
> uvm/uvm8_global.h:28,
>                  from /usr/src/modules/nvidia-kernel/nvidia-
> uvm/uvm8_gpu_isr.c:24:
> /usr/src/linux-headers-4.11.0-1-
> common/arch/x86/include/asm/atomic.h:24:28: note: expected 'const
> atomic_t * {aka const struct <anonymous> *}' but argument is of type
> 'refcount_t * {aka struct refcount_struct *}'
>  static __always_inline int atomic_read(const atomic_t *v)
>                             ^~~~~~~~~~~
> cc1: some warnings being treated as errors
> /usr/src/linux-headers-4.11.0-1-common/scripts/Makefile.build:299:
> recipe for target '/usr/src/modules/nvidia-kernel/nvidia-
> uvm/uvm8_gpu_isr.o' failed
> make[4]: *** [/usr/src/modules/nvidia-kernel/nvidia-
> uvm/uvm8_gpu_isr.o] Error 1
> 
> 
> Hopefully you can spot immediately what I missed.
> 
> (I want to fix 378 first before uploading 381 which will go through
> NEW, which may take some time)
> 
> Andreas

Hi,

I'll have a look tonight or tomorrow.

-- 
Kind regards,
Luca Boccassi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: This is a digitally signed message part
URL: <http://lists.alioth.debian.org/pipermail/pkg-nvidia-devel/attachments/20170809/3baebed8/attachment.sig>


More information about the pkg-nvidia-devel mailing list