gdrcopy icon indicating copy to clipboard operation
gdrcopy copied to clipboard

gddrv build fails with error: redefinition of 'vm_flags_set'

Open goelayu opened this issue 4 months ago • 1 comments

Build command: make CC=clang LD=ld.lld CUDA=/usr/local/cuda/ NVIDIA_SRC_DIR=/root/local/open-gpu-kernel-modules-570.124.06/kernel-open/nvidia/ all install

OS: CentOS Stream release 9

Error:

make CC=clang LD=ld.lld CUDA=/usr/local/cuda/ NVIDIA_SRC_DIR=/root/local/open-gpu-kernel-modules-570.124.06/kernel-open/nvidia/ all instal
awk: cmd. line:1: warning: regexp escape sequence `\#' is not a known regexp operator
awk: cmd. line:1: warning: regexp escape sequence `\#' is not a known regexp operator
GDRAPI_ARCH=X86
cd src/gdrdrv && \
make
make[1]: Entering directory '/root/gdrcopy/src/gdrdrv'
Picking NVIDIA driver sources from NVIDIA_SRC_DIR=/root/local/open-gpu-kernel-modules-570.124.06/kernel-open/nvidia/. If that does not meet your expectation, you might have a stale driver still around and that might cause problems.
Setting NVIDIA_IS_OPENSOURCE=y
Setting HAVE_VM_FLAGS_SET=n
Setting HAVE_PROC_OPS=n
make[2]: Entering directory '/usr/src/kernels/6.9.0-0_fbk10_0_gc5fa564d33e3'
  CC [M]  /root/gdrcopy/src/gdrdrv/nv-p2p-dummy.o
  CC [M]  /root/gdrcopy/src/gdrdrv/gdrdrv.o
/root/gdrcopy/src/gdrdrv/gdrdrv.c:157:20: error: redefinition of 'vm_flags_set'
static inline void vm_flags_set(struct vm_area_struct *vma, vm_flags_t flags)
                   ^
./include/linux/mm.h:857:20: note: previous definition is here
static inline void vm_flags_set(struct vm_area_struct *vma,
                   ^
/root/gdrcopy/src/gdrdrv/gdrdrv.c:159:19: error: cannot assign to non-static data member 'vm_flags' with const-qualified type 'const vm_flags_t' (aka 'const unsigned long')
    vma->vm_flags |= flags;
    ~~~~~~~~~~~~~ ^
./include/linux/mm_types.h:669:20: note: non-static data member 'vm_flags' declared const here
                const vm_flags_t vm_flags;
                ~~~~~~~~~~~~~~~~~^~~~~~~~
/root/gdrcopy/src/gdrdrv/gdrdrv.c:1807:70: error: incompatible pointer types passing 'const struct file_operations *' to parameter of type 'const struct proc_ops *' [-Werror,-Wincompatible-pointer-types]
    entry = proc_create("params", entry_mode, gdrdrv_proc_dir_entry, &gdrdrv_proc_params_proc_ops);
                                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/proc_fs.h:111:122: note: passing argument to parameter 'proc_ops' here
struct proc_dir_entry *proc_create(const char *name, umode_t mode, struct proc_dir_entry *parent, const struct proc_ops *proc_ops);
                                                                                                                         ^
/root/gdrcopy/src/gdrdrv/gdrdrv.c:1815:89: error: incompatible pointer types passing 'const struct file_operations *' to parameter of type 'const struct proc_ops *' [-Werror,-Wincompatible-pointer-types]
        entry = proc_create("nv_get_pages_refcount", entry_mode, gdrdrv_proc_dir_entry, &gdrdrv_proc_ngp_refcount_proc_ops);
                                                                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/proc_fs.h:111:122: note: passing argument to parameter 'proc_ops' here
struct proc_dir_entry *proc_create(const char *name, umode_t mode, struct proc_dir_entry *parent, const struct proc_ops *proc_ops);
                                                                                                                         ^
4 errors generated.
make[4]: *** [scripts/Makefile.build:244: /root/gdrcopy/src/gdrdrv/gdrdrv.o] Error 1

goelayu avatar Aug 19 '25 23:08 goelayu

@goelayu Thanks for reporting. You did not mention the version which showed the issue. Can you check with the latest R2.5 branch (rel 2.5.1)?

@pakmarkthub for viz

drossetti avatar Sep 15 '25 17:09 drossetti