Frogging-Family / nvidia-all

Nvidia driver latest to 396 series AIO installer
768 stars 69 forks source link

Compiling driver version 396.18 is impossible #83

Open DAC324 opened 2 years ago

DAC324 commented 2 years ago

Hello, The heading of this package claims that it is possible to build drivers from version 396 up to the latest version. Unfortunately, compiling driver 396.18 fails:

/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nvlink_linux.c:88:1: warning: data definition has no type or storage class
   88 | NV_DEFINE_PROCFS_SINGLE_FILE(permissions);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nvlink_linux.c:88:1: error: type defaults to 'int' in declaration of 'NV_DEFINE_PROCFS_SINGLE_FILE' [-Werror=implicit-int]
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nvlink_linux.c:88:1: warning: parameter names (without types) in function declaration
In file included from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-linux.h:299,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nvlink_linux.c:30:
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nvlink_linux.c: In function 'nvlink_permissions_init':
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:60:47: error: 'nv_procfs_permissions_fops' undeclared (first use in this function)
   60 |         const struct file_operations *fops = &nv_procfs_##__name##_fops;        \
      |                                               ^~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nvlink_linux.c:108:26: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  108 |     nvlink_permissions = NV_CREATE_PROC_FILE("permissions",
      |                          ^~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:60:47: note: each undeclared identifier is reported only once for each function it appears in
   60 |         const struct file_operations *fops = &nv_procfs_##__name##_fops;        \
      |                                               ^~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nvlink_linux.c:108:26: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  108 |     nvlink_permissions = NV_CREATE_PROC_FILE("permissions",
      |                          ^~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:61:19: error: 'const struct file_operations' has no member named 'proc_write'; did you mean 'splice_write'?
   61 |         if (fops->proc_write != 0)                                       \
      |                   ^~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nvlink_linux.c:108:26: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  108 |     nvlink_permissions = NV_CREATE_PROC_FILE("permissions",
      |                          ^~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:63:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Werror=incompatible-pointer-types]
   63 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const struct file_operations *
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nvlink_linux.c:108:26: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  108 |     nvlink_permissions = NV_CREATE_PROC_FILE("permissions",
      |                          ^~~~~~~~~~~~~~~~~~~
In file included from ./include/linux/efi.h:19,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-linux.h:205,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nvlink_linux.c:30:
./include/linux/proc_fs.h:106:48: note: expected 'const struct proc_ops *' but argument is of type 'const struct file_operations *'
  106 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:280: /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nvlink_linux.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_api.h:30,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_global.c:24:
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_va_range.h: In function 'uvm_va_range_vma_check':
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_va_range.h:670:45: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  670 |     uvm_assert_mmap_sem_locked(&vma->vm_mm->mmap_sem);
      |                                             ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:492:14: note: in definition of macro 'uvm_assert_mmap_sem_locked_mode'
  492 |       typeof(mmap_sem) _sem = (mmap_sem);                                           \
      |              ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_va_range.h:670:5: note: in expansion of macro 'uvm_assert_mmap_sem_locked'
  670 |     uvm_assert_mmap_sem_locked(&vma->vm_mm->mmap_sem);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_va_range.h:670:45: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  670 |     uvm_assert_mmap_sem_locked(&vma->vm_mm->mmap_sem);
      |                                             ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:492:32: note: in definition of macro 'uvm_assert_mmap_sem_locked_mode'
  492 |       typeof(mmap_sem) _sem = (mmap_sem);                                           \
      |                                ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_va_range.h:670:5: note: in expansion of macro 'uvm_assert_mmap_sem_locked'
  670 |     uvm_assert_mmap_sem_locked(&vma->vm_mm->mmap_sem);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:29,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_api.h:30,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_global.c:24:
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:493:34: warning: passing argument 1 of 'rwsem_is_locked' makes pointer from integer without a cast [-Wint-conversion]
  493 |       UVM_ASSERT(rwsem_is_locked(_sem) && uvm_check_locked_mmap_sem(_sem, (mode))); \
      |                                  ^~~~
      |                                  |
      |                                  int
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_common.h:126:47: note: in definition of macro 'UVM_IGNORE_EXPR'
  126 | #define UVM_IGNORE_EXPR(expr) ((void)sizeof(!(expr)))
      |                                               ^~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_common.h:156:26: note: in expansion of macro '_UVM_ASSERT_MSG'
  156 | #define UVM_ASSERT(expr) _UVM_ASSERT_MSG(expr, #expr, "\n")
      |                          ^~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:493:7: note: in expansion of macro 'UVM_ASSERT'
  493 |       UVM_ASSERT(rwsem_is_locked(_sem) && uvm_check_locked_mmap_sem(_sem, (mode))); \
      |       ^~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:496:53: note: in expansion of macro 'uvm_assert_mmap_sem_locked_mode'
  496 | #define uvm_assert_mmap_sem_locked(mmap_sem)        uvm_assert_mmap_sem_locked_mode((mmap_sem), UVM_LOCK_MODE_ANY)
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_va_range.h:670:5: note: in expansion of macro 'uvm_assert_mmap_sem_locked'
  670 |     uvm_assert_mmap_sem_locked(&vma->vm_mm->mmap_sem);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./include/linux/mm_types.h:11,
                 from ./include/linux/mmzone.h:21,
                 from ./include/linux/gfp.h:6,
                 from ./include/linux/mm.h:10,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-pgprot.h:17,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-linux.h:21,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_linux.h:41,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_api.h:29,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_global.c:24:
./include/linux/rwsem.h:57:56: note: expected 'struct rw_semaphore *' but argument is of type 'int'
   57 | static inline int rwsem_is_locked(struct rw_semaphore *sem)
      |                                   ~~~~~~~~~~~~~~~~~~~~~^~~
In file included from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:29,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_api.h:30,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_global.c:24:
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:493:69: warning: passing argument 1 of 'uvm_check_locked' makes pointer from integer without a cast [-Wint-conversion]
  493 |       UVM_ASSERT(rwsem_is_locked(_sem) && uvm_check_locked_mmap_sem(_sem, (mode))); \
      |                                                                     ^~~~
      |                                                                     |
      |                                                                     int
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_common.h:126:47: note: in definition of macro 'UVM_IGNORE_EXPR'
  126 | #define UVM_IGNORE_EXPR(expr) ((void)sizeof(!(expr)))
      |                                               ^~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_common.h:156:26: note: in expansion of macro '_UVM_ASSERT_MSG'
  156 | #define UVM_ASSERT(expr) _UVM_ASSERT_MSG(expr, #expr, "\n")
      |                          ^~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:493:7: note: in expansion of macro 'UVM_ASSERT'
  493 |       UVM_ASSERT(rwsem_is_locked(_sem) && uvm_check_locked_mmap_sem(_sem, (mode))); \
      |       ^~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:496:53: note: in expansion of macro 'uvm_assert_mmap_sem_locked_mode'
  496 | #define uvm_assert_mmap_sem_locked(mmap_sem)        uvm_assert_mmap_sem_locked_mode((mmap_sem), UVM_LOCK_MODE_ANY)
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_va_range.h:670:5: note: in expansion of macro 'uvm_assert_mmap_sem_locked'
  670 |     uvm_assert_mmap_sem_locked(&vma->vm_mm->mmap_sem);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_api.h:30,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_global.c:24:
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:462:38: note: expected 'void *' but argument is of type 'int'
  462 |   static bool uvm_check_locked(void *lock, uvm_lock_mode_t mode)
      |                                ~~~~~~^~~~
make[2]: *** [scripts/Makefile.build:280: /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_global.o] Error 1
In file included from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_api.h:30,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:24:
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_va_range.h: In function 'uvm_va_range_vma_check':
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_va_range.h:670:45: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  670 |     uvm_assert_mmap_sem_locked(&vma->vm_mm->mmap_sem);
      |                                             ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:492:14: note: in definition of macro 'uvm_assert_mmap_sem_locked_mode'
  492 |       typeof(mmap_sem) _sem = (mmap_sem);                                           \
      |              ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_va_range.h:670:5: note: in expansion of macro 'uvm_assert_mmap_sem_locked'
  670 |     uvm_assert_mmap_sem_locked(&vma->vm_mm->mmap_sem);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_va_range.h:670:45: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  670 |     uvm_assert_mmap_sem_locked(&vma->vm_mm->mmap_sem);
      |                                             ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:492:32: note: in definition of macro 'uvm_assert_mmap_sem_locked_mode'
  492 |       typeof(mmap_sem) _sem = (mmap_sem);                                           \
      |                                ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_va_range.h:670:5: note: in expansion of macro 'uvm_assert_mmap_sem_locked'
  670 |     uvm_assert_mmap_sem_locked(&vma->vm_mm->mmap_sem);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:29,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_api.h:30,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:24:
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:493:34: warning: passing argument 1 of 'rwsem_is_locked' makes pointer from integer without a cast [-Wint-conversion]
  493 |       UVM_ASSERT(rwsem_is_locked(_sem) && uvm_check_locked_mmap_sem(_sem, (mode))); \
      |                                  ^~~~
      |                                  |
      |                                  int
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_common.h:126:47: note: in definition of macro 'UVM_IGNORE_EXPR'
  126 | #define UVM_IGNORE_EXPR(expr) ((void)sizeof(!(expr)))
      |                                               ^~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_common.h:156:26: note: in expansion of macro '_UVM_ASSERT_MSG'
  156 | #define UVM_ASSERT(expr) _UVM_ASSERT_MSG(expr, #expr, "\n")
      |                          ^~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:493:7: note: in expansion of macro 'UVM_ASSERT'
  493 |       UVM_ASSERT(rwsem_is_locked(_sem) && uvm_check_locked_mmap_sem(_sem, (mode))); \
      |       ^~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:496:53: note: in expansion of macro 'uvm_assert_mmap_sem_locked_mode'
  496 | #define uvm_assert_mmap_sem_locked(mmap_sem)        uvm_assert_mmap_sem_locked_mode((mmap_sem), UVM_LOCK_MODE_ANY)
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_va_range.h:670:5: note: in expansion of macro 'uvm_assert_mmap_sem_locked'
  670 |     uvm_assert_mmap_sem_locked(&vma->vm_mm->mmap_sem);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./include/linux/mm_types.h:11,
                 from ./include/linux/mmzone.h:21,
                 from ./include/linux/gfp.h:6,
                 from ./include/linux/mm.h:10,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-pgprot.h:17,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-linux.h:21,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_linux.h:41,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_api.h:29,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:24:
./include/linux/rwsem.h:57:56: note: expected 'struct rw_semaphore *' but argument is of type 'int'
   57 | static inline int rwsem_is_locked(struct rw_semaphore *sem)
      |                                   ~~~~~~~~~~~~~~~~~~~~~^~~
In file included from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:29,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_api.h:30,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:24:
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:493:69: warning: passing argument 1 of 'uvm_check_locked' makes pointer from integer without a cast [-Wint-conversion]
  493 |       UVM_ASSERT(rwsem_is_locked(_sem) && uvm_check_locked_mmap_sem(_sem, (mode))); \
      |                                                                     ^~~~
      |                                                                     |
      |                                                                     int
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_common.h:126:47: note: in definition of macro 'UVM_IGNORE_EXPR'
  126 | #define UVM_IGNORE_EXPR(expr) ((void)sizeof(!(expr)))
      |                                               ^~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_common.h:156:26: note: in expansion of macro '_UVM_ASSERT_MSG'
  156 | #define UVM_ASSERT(expr) _UVM_ASSERT_MSG(expr, #expr, "\n")
      |                          ^~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:493:7: note: in expansion of macro 'UVM_ASSERT'
  493 |       UVM_ASSERT(rwsem_is_locked(_sem) && uvm_check_locked_mmap_sem(_sem, (mode))); \
      |       ^~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:496:53: note: in expansion of macro 'uvm_assert_mmap_sem_locked_mode'
  496 | #define uvm_assert_mmap_sem_locked(mmap_sem)        uvm_assert_mmap_sem_locked_mode((mmap_sem), UVM_LOCK_MODE_ANY)
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_va_range.h:670:5: note: in expansion of macro 'uvm_assert_mmap_sem_locked'
  670 |     uvm_assert_mmap_sem_locked(&vma->vm_mm->mmap_sem);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_api.h:30,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:24:
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:462:38: note: expected 'void *' but argument is of type 'int'
  462 |   static bool uvm_check_locked(void *lock, uvm_lock_mode_t mode)
      |                                ~~~~~~^~~~
In file included from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:29,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_api.h:30,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:24:
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c: In function 'uvm_vm_open_managed':
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:305:50: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  305 |     uvm_record_lock_mmap_sem_write(&current->mm->mmap_sem);
      |                                                  ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_common.h:126:47: note: in definition of macro 'UVM_IGNORE_EXPR'
  126 | #define UVM_IGNORE_EXPR(expr) ((void)sizeof(!(expr)))
      |                                               ^~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:305:5: note: in expansion of macro 'uvm_record_lock_mmap_sem_write'
  305 |     uvm_record_lock_mmap_sem_write(&current->mm->mmap_sem);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:354:52: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  354 |     uvm_record_unlock_mmap_sem_write(&current->mm->mmap_sem);
      |                                                    ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_common.h:126:47: note: in definition of macro 'UVM_IGNORE_EXPR'
  126 | #define UVM_IGNORE_EXPR(expr) ((void)sizeof(!(expr)))
      |                                               ^~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:354:5: note: in expansion of macro 'uvm_record_unlock_mmap_sem_write'
  354 |     uvm_record_unlock_mmap_sem_write(&current->mm->mmap_sem);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c: In function 'uvm_vm_close_managed':
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:364:54: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  364 |         uvm_record_lock_mmap_sem_write(&current->mm->mmap_sem);
      |                                                      ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_common.h:126:47: note: in definition of macro 'UVM_IGNORE_EXPR'
  126 | #define UVM_IGNORE_EXPR(expr) ((void)sizeof(!(expr)))
      |                                               ^~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:364:9: note: in expansion of macro 'uvm_record_lock_mmap_sem_write'
  364 |         uvm_record_lock_mmap_sem_write(&current->mm->mmap_sem);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:394:56: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  394 |         uvm_record_unlock_mmap_sem_write(&current->mm->mmap_sem);
      |                                                        ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_common.h:126:47: note: in definition of macro 'UVM_IGNORE_EXPR'
  126 | #define UVM_IGNORE_EXPR(expr) ((void)sizeof(!(expr)))
      |                                               ^~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:394:9: note: in expansion of macro 'uvm_record_unlock_mmap_sem_write'
  394 |         uvm_record_unlock_mmap_sem_write(&current->mm->mmap_sem);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c: In function 'uvm_vm_fault':
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:422:48: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  422 |     uvm_record_lock_mmap_sem_read(&vma->vm_mm->mmap_sem);
      |                                                ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_common.h:126:47: note: in definition of macro 'UVM_IGNORE_EXPR'
  126 | #define UVM_IGNORE_EXPR(expr) ((void)sizeof(!(expr)))
      |                                               ^~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:422:5: note: in expansion of macro 'uvm_record_lock_mmap_sem_read'
  422 |     uvm_record_lock_mmap_sem_read(&vma->vm_mm->mmap_sem);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:482:50: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  482 |     uvm_record_unlock_mmap_sem_read(&vma->vm_mm->mmap_sem);
      |                                                  ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_common.h:126:47: note: in definition of macro 'UVM_IGNORE_EXPR'
  126 | #define UVM_IGNORE_EXPR(expr) ((void)sizeof(!(expr)))
      |                                               ^~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:482:5: note: in expansion of macro 'uvm_record_unlock_mmap_sem_read'
  482 |     uvm_record_unlock_mmap_sem_read(&vma->vm_mm->mmap_sem);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c: In function 'uvm_vm_open_semaphore_pool':
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:551:50: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  551 |     uvm_record_lock_mmap_sem_write(&current->mm->mmap_sem);
      |                                                  ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_common.h:126:47: note: in definition of macro 'UVM_IGNORE_EXPR'
  126 | #define UVM_IGNORE_EXPR(expr) ((void)sizeof(!(expr)))
      |                                               ^~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:551:5: note: in expansion of macro 'uvm_record_lock_mmap_sem_write'
  551 |     uvm_record_lock_mmap_sem_write(&current->mm->mmap_sem);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:589:52: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  589 |     uvm_record_unlock_mmap_sem_write(&current->mm->mmap_sem);
      |                                                    ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_common.h:126:47: note: in definition of macro 'UVM_IGNORE_EXPR'
  126 | #define UVM_IGNORE_EXPR(expr) ((void)sizeof(!(expr)))
      |                                               ^~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:589:5: note: in expansion of macro 'uvm_record_unlock_mmap_sem_write'
  589 |     uvm_record_unlock_mmap_sem_write(&current->mm->mmap_sem);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c: In function 'uvm_vm_close_semaphore_pool':
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:599:54: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  599 |         uvm_record_lock_mmap_sem_write(&current->mm->mmap_sem);
      |                                                      ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_common.h:126:47: note: in definition of macro 'UVM_IGNORE_EXPR'
  126 | #define UVM_IGNORE_EXPR(expr) ((void)sizeof(!(expr)))
      |                                               ^~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:599:9: note: in expansion of macro 'uvm_record_lock_mmap_sem_write'
  599 |         uvm_record_lock_mmap_sem_write(&current->mm->mmap_sem);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:608:56: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  608 |         uvm_record_unlock_mmap_sem_write(&current->mm->mmap_sem);
      |                                                        ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_common.h:126:47: note: in definition of macro 'UVM_IGNORE_EXPR'
  126 | #define UVM_IGNORE_EXPR(expr) ((void)sizeof(!(expr)))
      |                                               ^~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:608:9: note: in expansion of macro 'uvm_record_unlock_mmap_sem_write'
  608 |         uvm_record_unlock_mmap_sem_write(&current->mm->mmap_sem);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c: In function 'uvm_mmap':
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:634:50: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  634 |     uvm_record_lock_mmap_sem_write(&current->mm->mmap_sem);
      |                                                  ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_common.h:126:47: note: in definition of macro 'UVM_IGNORE_EXPR'
  126 | #define UVM_IGNORE_EXPR(expr) ((void)sizeof(!(expr)))
      |                                               ^~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:634:5: note: in expansion of macro 'uvm_record_lock_mmap_sem_write'
  634 |     uvm_record_lock_mmap_sem_write(&current->mm->mmap_sem);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:720:52: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  720 |     uvm_record_unlock_mmap_sem_write(&current->mm->mmap_sem);
      |                                                    ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_common.h:126:47: note: in definition of macro 'UVM_IGNORE_EXPR'
  126 | #define UVM_IGNORE_EXPR(expr) ((void)sizeof(!(expr)))
      |                                               ^~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:720:5: note: in expansion of macro 'uvm_record_unlock_mmap_sem_write'
  720 |     uvm_record_unlock_mmap_sem_write(&current->mm->mmap_sem);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_api.h:30,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:24:
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c: In function 'uvm8_initialize':
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:860:43: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  860 |     uvm_down_write_mmap_sem(&current->mm->mmap_sem);
      |                                           ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:519:16: note: in definition of macro 'uvm_down_write_mmap_sem'
  519 |         typeof(mmap_sem) _sem = (mmap_sem);             \
      |                ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:860:43: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  860 |     uvm_down_write_mmap_sem(&current->mm->mmap_sem);
      |                                           ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:519:34: note: in definition of macro 'uvm_down_write_mmap_sem'
  519 |         typeof(mmap_sem) _sem = (mmap_sem);             \
      |                                  ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:521:20: warning: passing argument 1 of 'down_write' makes pointer from integer without a cast [-Wint-conversion]
  521 |         down_write(_sem);                               \
      |                    ^~~~
      |                    |
      |                    int
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:860:5: note: in expansion of macro 'uvm_down_write_mmap_sem'
  860 |     uvm_down_write_mmap_sem(&current->mm->mmap_sem);
      |     ^~~~~~~~~~~~~~~~~~~~~~~
In file included from ./include/linux/mm_types.h:11,
                 from ./include/linux/mmzone.h:21,
                 from ./include/linux/gfp.h:6,
                 from ./include/linux/mm.h:10,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-pgprot.h:17,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-linux.h:21,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_linux.h:41,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_api.h:29,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:24:
./include/linux/rwsem.h:137:45: note: expected 'struct rw_semaphore *' but argument is of type 'int'
  137 | extern void down_write(struct rw_semaphore *sem);
      |                        ~~~~~~~~~~~~~~~~~~~~~^~~
In file included from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_api.h:30,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:24:
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:879:41: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  879 |     uvm_up_write_mmap_sem(&current->mm->mmap_sem);
      |                                         ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:525:16: note: in definition of macro 'uvm_up_write_mmap_sem'
  525 |         typeof(mmap_sem) _sem = (mmap_sem);             \
      |                ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:879:41: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  879 |     uvm_up_write_mmap_sem(&current->mm->mmap_sem);
      |                                         ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:525:34: note: in definition of macro 'uvm_up_write_mmap_sem'
  525 |         typeof(mmap_sem) _sem = (mmap_sem);             \
      |                                  ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:526:18: warning: passing argument 1 of 'up_write' makes pointer from integer without a cast [-Wint-conversion]
  526 |         up_write(_sem);                                 \
      |                  ^~~~
      |                  |
      |                  int
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:879:5: note: in expansion of macro 'uvm_up_write_mmap_sem'
  879 |     uvm_up_write_mmap_sem(&current->mm->mmap_sem);
      |     ^~~~~~~~~~~~~~~~~~~~~
In file included from ./include/linux/mm_types.h:11,
                 from ./include/linux/mmzone.h:21,
                 from ./include/linux/gfp.h:6,
                 from ./include/linux/mm.h:10,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-pgprot.h:17,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-linux.h:21,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_linux.h:41,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_api.h:29,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.c:24:
./include/linux/rwsem.h:153:43: note: expected 'struct rw_semaphore *' but argument is of type 'int'
  153 | extern void up_write(struct rw_semaphore *sem);
      |                      ~~~~~~~~~~~~~~~~~~~~~^~~
make[2]: *** [scripts/Makefile.build:280: /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8.o] Error 1
In file included from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_pmm_gpu.h:55,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_gpu.h:37,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_tools.c:24:
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_va_range.h: In function 'uvm_va_range_vma_check':
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_va_range.h:670:45: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  670 |     uvm_assert_mmap_sem_locked(&vma->vm_mm->mmap_sem);
      |                                             ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:492:14: note: in definition of macro 'uvm_assert_mmap_sem_locked_mode'
  492 |       typeof(mmap_sem) _sem = (mmap_sem);                                           \
      |              ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_va_range.h:670:5: note: in expansion of macro 'uvm_assert_mmap_sem_locked'
  670 |     uvm_assert_mmap_sem_locked(&vma->vm_mm->mmap_sem);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_va_range.h:670:45: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  670 |     uvm_assert_mmap_sem_locked(&vma->vm_mm->mmap_sem);
      |                                             ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:492:32: note: in definition of macro 'uvm_assert_mmap_sem_locked_mode'
  492 |       typeof(mmap_sem) _sem = (mmap_sem);                                           \
      |                                ^~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_va_range.h:670:5: note: in expansion of macro 'uvm_assert_mmap_sem_locked'
  670 |     uvm_assert_mmap_sem_locked(&vma->vm_mm->mmap_sem);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_tools.c:23:
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:493:34: warning: passing argument 1 of 'rwsem_is_locked' makes pointer from integer without a cast [-Wint-conversion]
  493 |       UVM_ASSERT(rwsem_is_locked(_sem) && uvm_check_locked_mmap_sem(_sem, (mode))); \
      |                                  ^~~~
      |                                  |
      |                                  int
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_common.h:126:47: note: in definition of macro 'UVM_IGNORE_EXPR'
  126 | #define UVM_IGNORE_EXPR(expr) ((void)sizeof(!(expr)))
      |                                               ^~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_common.h:156:26: note: in expansion of macro '_UVM_ASSERT_MSG'
  156 | #define UVM_ASSERT(expr) _UVM_ASSERT_MSG(expr, #expr, "\n")
      |                          ^~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:493:7: note: in expansion of macro 'UVM_ASSERT'
  493 |       UVM_ASSERT(rwsem_is_locked(_sem) && uvm_check_locked_mmap_sem(_sem, (mode))); \
      |       ^~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:496:53: note: in expansion of macro 'uvm_assert_mmap_sem_locked_mode'
  496 | #define uvm_assert_mmap_sem_locked(mmap_sem)        uvm_assert_mmap_sem_locked_mode((mmap_sem), UVM_LOCK_MODE_ANY)
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_va_range.h:670:5: note: in expansion of macro 'uvm_assert_mmap_sem_locked'
  670 |     uvm_assert_mmap_sem_locked(&vma->vm_mm->mmap_sem);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./include/linux/mm_types.h:11,
                 from ./include/linux/mmzone.h:21,
                 from ./include/linux/gfp.h:6,
                 from ./include/linux/mm.h:10,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-pgprot.h:17,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-linux.h:21,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_linux.h:41,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_common.h:48,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_tools.c:23:
./include/linux/rwsem.h:57:56: note: expected 'struct rw_semaphore *' but argument is of type 'int'
   57 | static inline int rwsem_is_locked(struct rw_semaphore *sem)
      |                                   ~~~~~~~~~~~~~~~~~~~~~^~~
In file included from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_tools.c:23:
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:493:69: warning: passing argument 1 of 'uvm_check_locked' makes pointer from integer without a cast [-Wint-conversion]
  493 |       UVM_ASSERT(rwsem_is_locked(_sem) && uvm_check_locked_mmap_sem(_sem, (mode))); \
      |                                                                     ^~~~
      |                                                                     |
      |                                                                     int
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_common.h:126:47: note: in definition of macro 'UVM_IGNORE_EXPR'
  126 | #define UVM_IGNORE_EXPR(expr) ((void)sizeof(!(expr)))
      |                                               ^~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm_common.h:156:26: note: in expansion of macro '_UVM_ASSERT_MSG'
  156 | #define UVM_ASSERT(expr) _UVM_ASSERT_MSG(expr, #expr, "\n")
      |                          ^~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:493:7: note: in expansion of macro 'UVM_ASSERT'
  493 |       UVM_ASSERT(rwsem_is_locked(_sem) && uvm_check_locked_mmap_sem(_sem, (mode))); \
      |       ^~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:496:53: note: in expansion of macro 'uvm_assert_mmap_sem_locked_mode'
  496 | #define uvm_assert_mmap_sem_locked(mmap_sem)        uvm_assert_mmap_sem_locked_mode((mmap_sem), UVM_LOCK_MODE_ANY)
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_va_range.h:670:5: note: in expansion of macro 'uvm_assert_mmap_sem_locked'
  670 |     uvm_assert_mmap_sem_locked(&vma->vm_mm->mmap_sem);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_pmm_gpu.h:55,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_gpu.h:37,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_tools.c:24:
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_lock.h:462:38: note: expected 'void *' but argument is of type 'int'
  462 |   static bool uvm_check_locked(void *lock, uvm_lock_mode_t mode)
      |                                ~~~~~~^~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_tools.c: In function 'map_user_pages':
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_tools.c:273:29: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     down_read(&current->mm->mmap_sem);
      |                             ^~~~~~~~
      |                             mmap_base
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_tools.c:275:27: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  275 |     up_read(&current->mm->mmap_sem);
      |                           ^~~~~~~~
      |                           mmap_base
make[2]: *** [scripts/Makefile.build:280: /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia-uvm/uvm8_tools.o] Error 1
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:161:1: warning: data definition has no type or storage class
  161 | NV_DEFINE_PROCFS_SINGLE_FILE(gpu_info);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:161:1: error: type defaults to 'int' in declaration of 'NV_DEFINE_PROCFS_SINGLE_FILE' [-Werror=implicit-int]
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:161:1: warning: parameter names (without types) in function declaration
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:175:1: warning: data definition has no type or storage class
  175 | NV_DEFINE_PROCFS_SINGLE_FILE(version);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:175:1: error: type defaults to 'int' in declaration of 'NV_DEFINE_PROCFS_SINGLE_FILE' [-Werror=implicit-int]
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:175:1: warning: parameter names (without types) in function declaration
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:346:1: warning: data definition has no type or storage class
  346 | NV_DEFINE_PROCFS_SINGLE_FILE(params);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:346:1: error: type defaults to 'int' in declaration of 'NV_DEFINE_PROCFS_SINGLE_FILE' [-Werror=implicit-int]
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:346:1: warning: parameter names (without types) in function declaration
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:700:1: warning: data definition has no type or storage class
  700 | NV_DEFINE_PROCFS_SINGLE_FILE(text_file);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:700:1: error: type defaults to 'int' in declaration of 'NV_DEFINE_PROCFS_SINGLE_FILE' [-Werror=implicit-int]
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:700:1: warning: parameter names (without types) in function declaration
In file included from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-linux.h:299,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:15:
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c: In function 'nv_procfs_add_text_file':
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:60:47: error: 'nv_procfs_text_file_fops' undeclared (first use in this function); did you mean 'nv_procfs_registry_fops'?
   60 |         const struct file_operations *fops = &nv_procfs_##__name##_fops;        \
      |                                               ^~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:709:5: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  709 |     NV_CREATE_PROC_FILE(filename, parent, text_file, (void *)text);
      |     ^~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:60:47: note: each undeclared identifier is reported only once for each function it appears in
   60 |         const struct file_operations *fops = &nv_procfs_##__name##_fops;        \
      |                                               ^~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:709:5: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  709 |     NV_CREATE_PROC_FILE(filename, parent, text_file, (void *)text);
      |     ^~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:61:19: error: 'const struct file_operations' has no member named 'proc_write'; did you mean 'splice_write'?
   61 |         if (fops->proc_write != 0)                                       \
      |                   ^~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:709:5: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  709 |     NV_CREATE_PROC_FILE(filename, parent, text_file, (void *)text);
      |     ^~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:63:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Werror=incompatible-pointer-types]
   63 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const struct file_operations *
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:709:5: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  709 |     NV_CREATE_PROC_FILE(filename, parent, text_file, (void *)text);
      |     ^~~~~~~~~~~~~~~~~~~
In file included from ./include/linux/efi.h:19,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-linux.h:205,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:15:
./include/linux/proc_fs.h:106:48: note: expected 'const struct proc_ops *' but argument is of type 'const struct file_operations *'
  106 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-linux.h:299,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:15:
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c: In function 'nv_register_procfs':
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:60:47: error: 'nv_procfs_params_fops' undeclared (first use in this function); did you mean 'nv_procfs_registry_fops'?
   60 |         const struct file_operations *fops = &nv_procfs_##__name##_fops;        \
      |                                               ^~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:763:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  763 |     entry = NV_CREATE_PROC_FILE("params", proc_nvidia, params, NULL);
      |             ^~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:61:19: error: 'const struct file_operations' has no member named 'proc_write'; did you mean 'splice_write'?
   61 |         if (fops->proc_write != 0)                                       \
      |                   ^~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:763:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  763 |     entry = NV_CREATE_PROC_FILE("params", proc_nvidia, params, NULL);
      |             ^~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:63:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Werror=incompatible-pointer-types]
   63 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const struct file_operations *
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:763:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  763 |     entry = NV_CREATE_PROC_FILE("params", proc_nvidia, params, NULL);
      |             ^~~~~~~~~~~~~~~~~~~
In file included from ./include/linux/efi.h:19,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-linux.h:205,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:15:
./include/linux/proc_fs.h:106:48: note: expected 'const struct proc_ops *' but argument is of type 'const struct file_operations *'
  106 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-linux.h:299,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:15:
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:60:46: error: initialization of 'const struct file_operations *' from incompatible pointer type 'struct proc_ops *' [-Werror=incompatible-pointer-types]
   60 |         const struct file_operations *fops = &nv_procfs_##__name##_fops;        \
      |                                              ^
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:767:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  767 |     entry = NV_CREATE_PROC_FILE("registry", proc_nvidia, registry, NULL);
      |             ^~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:61:19: error: 'const struct file_operations' has no member named 'proc_write'; did you mean 'splice_write'?
   61 |         if (fops->proc_write != 0)                                       \
      |                   ^~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:767:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  767 |     entry = NV_CREATE_PROC_FILE("registry", proc_nvidia, registry, NULL);
      |             ^~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:63:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Werror=incompatible-pointer-types]
   63 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const struct file_operations *
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:767:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  767 |     entry = NV_CREATE_PROC_FILE("registry", proc_nvidia, registry, NULL);
      |             ^~~~~~~~~~~~~~~~~~~
In file included from ./include/linux/efi.h:19,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-linux.h:205,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:15:
./include/linux/proc_fs.h:106:48: note: expected 'const struct proc_ops *' but argument is of type 'const struct file_operations *'
  106 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-linux.h:299,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:15:
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:60:47: error: 'nv_procfs_version_fops' undeclared (first use in this function); did you mean 'nv_procfs_registry_fops'?
   60 |         const struct file_operations *fops = &nv_procfs_##__name##_fops;        \
      |                                               ^~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:788:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  788 |     entry = NV_CREATE_PROC_FILE("version", proc_nvidia, version, NULL);
      |             ^~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:61:19: error: 'const struct file_operations' has no member named 'proc_write'; did you mean 'splice_write'?
   61 |         if (fops->proc_write != 0)                                       \
      |                   ^~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:788:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  788 |     entry = NV_CREATE_PROC_FILE("version", proc_nvidia, version, NULL);
      |             ^~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:63:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Werror=incompatible-pointer-types]
   63 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const struct file_operations *
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:788:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  788 |     entry = NV_CREATE_PROC_FILE("version", proc_nvidia, version, NULL);
      |             ^~~~~~~~~~~~~~~~~~~
In file included from ./include/linux/efi.h:19,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-linux.h:205,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:15:
./include/linux/proc_fs.h:106:48: note: expected 'const struct proc_ops *' but argument is of type 'const struct file_operations *'
  106 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-linux.h:299,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:15:
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c: In function 'nv_procfs_add_gpu':
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:60:47: error: 'nv_procfs_gpu_info_fops' undeclared (first use in this function)
   60 |         const struct file_operations *fops = &nv_procfs_##__name##_fops;        \
      |                                               ^~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:831:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  831 |     entry = NV_CREATE_PROC_FILE("information", proc_nvidia_gpu, gpu_info,
      |             ^~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:61:19: error: 'const struct file_operations' has no member named 'proc_write'; did you mean 'splice_write'?
   61 |         if (fops->proc_write != 0)                                       \
      |                   ^~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:831:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  831 |     entry = NV_CREATE_PROC_FILE("information", proc_nvidia_gpu, gpu_info,
      |             ^~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:63:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Werror=incompatible-pointer-types]
   63 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const struct file_operations *
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:831:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  831 |     entry = NV_CREATE_PROC_FILE("information", proc_nvidia_gpu, gpu_info,
      |             ^~~~~~~~~~~~~~~~~~~
In file included from ./include/linux/efi.h:19,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-linux.h:205,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:15:
./include/linux/proc_fs.h:106:48: note: expected 'const struct proc_ops *' but argument is of type 'const struct file_operations *'
  106 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-linux.h:299,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:15:
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:60:46: error: initialization of 'const struct file_operations *' from incompatible pointer type 'struct proc_ops *' [-Werror=incompatible-pointer-types]
   60 |         const struct file_operations *fops = &nv_procfs_##__name##_fops;        \
      |                                              ^
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:836:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  836 |     entry = NV_CREATE_PROC_FILE("registry", proc_nvidia_gpu, registry, nv);
      |             ^~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:61:19: error: 'const struct file_operations' has no member named 'proc_write'; did you mean 'splice_write'?
   61 |         if (fops->proc_write != 0)                                       \
      |                   ^~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:836:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  836 |     entry = NV_CREATE_PROC_FILE("registry", proc_nvidia_gpu, registry, nv);
      |             ^~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:63:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Werror=incompatible-pointer-types]
   63 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const struct file_operations *
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:836:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  836 |     entry = NV_CREATE_PROC_FILE("registry", proc_nvidia_gpu, registry, nv);
      |             ^~~~~~~~~~~~~~~~~~~
In file included from ./include/linux/efi.h:19,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-linux.h:205,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:15:
./include/linux/proc_fs.h:106:48: note: expected 'const struct proc_ops *' but argument is of type 'const struct file_operations *'
  106 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-linux.h:299,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:15:
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:60:46: error: initialization of 'const struct file_operations *' from incompatible pointer type 'struct proc_ops *' [-Werror=incompatible-pointer-types]
   60 |         const struct file_operations *fops = &nv_procfs_##__name##_fops;        \
      |                                              ^
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:842:17: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  842 |         entry = NV_CREATE_PROC_FILE("exercise_error_forwarding", proc_nvidia_gpu,
      |                 ^~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:61:19: error: 'const struct file_operations' has no member named 'proc_write'; did you mean 'splice_write'?
   61 |         if (fops->proc_write != 0)                                       \
      |                   ^~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:842:17: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  842 |         entry = NV_CREATE_PROC_FILE("exercise_error_forwarding", proc_nvidia_gpu,
      |                 ^~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:63:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Werror=incompatible-pointer-types]
   63 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const struct file_operations *
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:842:17: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  842 |         entry = NV_CREATE_PROC_FILE("exercise_error_forwarding", proc_nvidia_gpu,
      |                 ^~~~~~~~~~~~~~~~~~~
In file included from ./include/linux/efi.h:19,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-linux.h:205,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:15:
./include/linux/proc_fs.h:106:48: note: expected 'const struct proc_ops *' but argument is of type 'const struct file_operations *'
  106 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-linux.h:299,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:15:
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:60:46: error: initialization of 'const struct file_operations *' from incompatible pointer type 'struct proc_ops *' [-Werror=incompatible-pointer-types]
   60 |         const struct file_operations *fops = &nv_procfs_##__name##_fops;        \
      |                                              ^
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:850:17: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  850 |         entry = NV_CREATE_PROC_FILE("unbindLock", proc_nvidia_gpu, unbind_lock, nv);
      |                 ^~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:61:19: error: 'const struct file_operations' has no member named 'proc_write'; did you mean 'splice_write'?
   61 |         if (fops->proc_write != 0)                                       \
      |                   ^~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:850:17: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  850 |         entry = NV_CREATE_PROC_FILE("unbindLock", proc_nvidia_gpu, unbind_lock, nv);
      |                 ^~~~~~~~~~~~~~~~~~~
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-procfs.h:63:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Werror=incompatible-pointer-types]
   63 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const struct file_operations *
/home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:850:17: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  850 |         entry = NV_CREATE_PROC_FILE("unbindLock", proc_nvidia_gpu, unbind_lock, nv);
      |                 ^~~~~~~~~~~~~~~~~~~
In file included from ./include/linux/efi.h:19,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/common/inc/nv-linux.h:205,
                 from /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.c:15:
./include/linux/proc_fs.h:106:48: note: expected 'const struct proc_ops *' but argument is of type 'const struct file_operations *'
  106 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:280: /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO/nvidia/nv-procfs.o] Error 1
make[1]: *** [Makefile:1822: /home/gerd/Downloads/nvidia-390xx/nvidia-all/src/NVIDIA-Linux-x86_64-396.18/kernel-5.10.85-1-MANJARO] Error 2
make[1]: Leaving directory '/usr/lib/modules/5.10.85-1-MANJARO/build'
make: *** [Makefile:79: modules] Error 2
==> ERROR: A failure occurred in build().
    Aborting...
Tk-Glitch commented 2 years ago

396 series requires kernel 5.3 or older, 5.1 being the recommended version for best compatibility. 5.10 is too new.

DAC324 commented 2 years ago

396 series requires kernel 5.3 or older, 5.1 being the recommended version for best compatibility. 5.10 is too new.

According to PKGBUILD, the latest kernel to work with the 396 driver series appears to be 5.7:

if (( $(vercmp "$_kernel" "5.7") >= 0 )); then
      _kernel57="1"
      _whitelist57=( 396* 410* 415* 418* 430* 435* 440* )
    fi          

But the patches for kernels up to 5.7 also do not work flawlessly. There are many hunks rejected by patch.

Tk-Glitch commented 2 years ago

The patch used to apply on previous 396 series drivers but it didn't result in working modules afaik. It was added to the allowed list only because the patch applied (likely on some vulkan dev build that supported transform feedback, more recent than mainline .18), and while I remember getting things to work on 5.3, it was never tested successfully on initial 5.4 release and never tested at all beyond that. After 150+ revisions of 5.4 at this point, things may be even deeper frogged now than at release.. I have added some notes in the initial selector when you call makepkg to clarify what should be expected compatibility wise, especially on the older versions, but ultimately those dinosaur drivers should be removed altogether as they serve no real purpose.

DAC324 commented 2 years ago

but ultimately those dinosaur drivers should be removed altogether as they serve no real purpose.

I don't think so. There are quite a lot of older computers equipped with Nvidia Fermi GPUs, and why should we toss them in the bin if they are still working? I am currently writing this on an ancient Lenovo ThinkCentre M91p, equipped with a Geforce GTX 560 card.

Interestingly enough, this card runs happily with the even older driver 390, under the latest kernel 5.16-rc6 :)

Tk-Glitch commented 2 years ago

That's the thing. We're are not supporting legacy hardware because 340 and 390 are made for that, are still maintained by Nvidia, and are working well. 396 is and had been abandoned for a long while now.

DAC324 commented 2 years ago

The patch used to apply on previous 396 series drivers but it didn't result in working modules afaik.

Tk-Glitch gave an important hint. Indeed, it looks like some of the updates required for kernels beyond 5.4 have been applied to the 390 driver, rather than to 396. Thus, we have the somewhat weird situation that the source files for 390 are newer than those for 396 despite of their version number being higher.

I just did an experiment: Extracted the 390.147 archive, applied the usual patch to the sources to have them running with kernel 5.16, and then copied the entire kernel directory over my 396.18 sources, overwriting all the files in the 396.18 kernel directory. As a result, it was possible to build 396.18 modules against the kernel 5.16 headers, and they apparently even loaded.

Unfortunately, Nvidia fails to properly maintain their online documentation. For example, the list of supported products for the 396.18 driver on https://www.nvidia.com/Download/driverResults.aspx/133571/en-us mentions the GeForce GTX 560 to be supported:

GeForce 500 Series: GeForce GTX 590, GeForce GTX 580, GeForce GTX 570, GeForce GTX 560 Ti, GeForce GTX 560 SE, GeForce GTX 560, GeForce GTX 555, GeForce GTX 550 Ti, GeForce GT 545, GeForce GT 530, GeForce GT 520, GeForce 510

But the driver itself refuses to load:

[ 30.891] (WW) NVIDIA(0): The NVIDIA GeForce GTX 560 GPU installed in this system is [ 30.891] (WW) NVIDIA(0): supported through the NVIDIA 390.xx Legacy drivers. Please [ 30.891] (WW) NVIDIA(0): visit http://www.nvidia.com/object/unix.html for more [ 30.891] (WW) NVIDIA(0): information. The 396.18 NVIDIA driver will ignore this [ 30.891] (WW) NVIDIA(0): GPU. Continuing probe... [ 30.891] (EE) No devices detected.