p100sch icon

Nvidia Grid Driver Issue

p100sch | PRO | 07/17/25 10:22:52 AM UTC | 0 ⭐ | 205 šŸ‘ļø | Never ā° | []
text |

7.42 MB

|

Fixit

|

0 šŸ‘

/

0 šŸ‘Ž

/usr/bin/make -k -j16  NV_EXCLUDE_KERNEL_MODULES="" SYSSRC="/lib/modules/6.14.6-arch1-1/build" SYSOUT="/lib/modules/6.14.6-arch1-1/build"
   make[1]: Entering directory '/usr/lib/modules/6.14.6-arch1-1/build'
   make[2]: Entering directory '/tmp/selfgz13746/NVIDIA-Linux-x86_64-535.161.07-grid/kernel'
   warning: the compiler differs from the one used to build the kernel
     The kernel was built by: gcc (GCC) 15.1.1 20250425
     You are using:           cc (GCC) 15.1.1 20250425
     SYMLINK nvidia/nv-kernel.o
     SYMLINK nvidia-modeset/nv-modeset-kernel.o
    CONFTEST: hash__remap_4k_pfn
    CONFTEST: set_pages_uc
    CONFTEST: list_is_first
    CONFTEST: set_memory_uc
    CONFTEST: set_memory_array_uc
    CONFTEST: set_pages_array_uc
    CONFTEST: ioremap_cache
    CONFTEST: ioremap_wc
    CONFTEST: ioremap_driver_hardened
    CONFTEST: ioremap_driver_hardened_wc
    CONFTEST: ioremap_cache_shared
    CONFTEST: pci_get_domain_bus_and_slot
    CONFTEST: get_num_physpages
    CONFTEST: pde_data
    CONFTEST: xen_ioemu_inject_msi
    CONFTEST: phys_to_dma
    CONFTEST: get_dma_ops
    CONFTEST: dma_attr_macros
    CONFTEST: dma_map_page_attrs
    CONFTEST: write_cr4
    CONFTEST: of_find_node_by_phandle
    CONFTEST: of_node_to_nid
    CONFTEST: pnv_pci_get_npu_dev
    CONFTEST: of_get_ibm_chip_id
    CONFTEST: pci_bus_address
    CONFTEST: pci_stop_and_remove_bus_device
    CONFTEST: pci_rebar_get_possible_sizes
    CONFTEST: wait_for_random_bytes
    CONFTEST: register_cpu_notifier
    CONFTEST: cpuhp_setup_state
    CONFTEST: dma_map_resource
    CONFTEST: get_backlight_device_by_name
    CONFTEST: timer_setup
    CONFTEST: pci_enable_msix_range
    CONFTEST: kernel_read_has_pointer_pos_arg
    CONFTEST: kernel_write_has_pointer_pos_arg
    CONFTEST: dma_direct_map_resource
    CONFTEST: tegra_get_platform
    CONFTEST: tegra_bpmp_send_receive
    CONFTEST: flush_cache_all
    CONFTEST: vmf_insert_pfn
    CONFTEST: jiffies_to_timespec
    CONFTEST: ktime_get_raw_ts64
    CONFTEST: ktime_get_real_ts64
    CONFTEST: full_name_hash
    CONFTEST: pci_enable_atomic_ops_to_root
    CONFTEST: vga_tryget
    CONFTEST: cc_platform_has
    CONFTEST: seq_read_iter
    CONFTEST: unsafe_follow_pfn
    CONFTEST: drm_gem_object_get
    CONFTEST: drm_gem_object_put_unlocked
    CONFTEST: add_memory_driver_managed
    CONFTEST: device_property_read_u64
    CONFTEST: devm_of_platform_populate
    CONFTEST: of_dma_configure
    CONFTEST: of_property_count_elems_of_size
    CONFTEST: of_property_read_variable_u8_array
    CONFTEST: of_property_read_variable_u32_array
    CONFTEST: i2c_new_client_device
    CONFTEST: i2c_unregister_device
    CONFTEST: of_get_named_gpio
    CONFTEST: devm_gpio_request_one
    CONFTEST: gpio_direction_input
    CONFTEST: gpio_direction_output
    CONFTEST: gpio_get_value
    CONFTEST: gpio_set_value
    CONFTEST: gpio_to_irq
    CONFTEST: icc_get
    CONFTEST: icc_put
    CONFTEST: icc_set_bw
    CONFTEST: dma_buf_export_args
    CONFTEST: dma_buf_ops_has_kmap
    CONFTEST: dma_buf_ops_has_kmap_atomic
    CONFTEST: dma_buf_ops_has_map
    CONFTEST: dma_buf_ops_has_map_atomic
    CONFTEST: dma_buf_has_dynamic_attachment
    CONFTEST: dma_buf_attachment_has_peer2peer
    CONFTEST: dma_set_mask_and_coherent
    CONFTEST: devm_clk_bulk_get_all
    CONFTEST: get_task_ioprio
    CONFTEST: mdev_set_iommu_device
    CONFTEST: offline_and_remove_memory
    CONFTEST: crypto_tfm_ctx_aligned
    CONFTEST: wait_on_bit_lock_argument_count
    CONFTEST: radix_tree_empty
    CONFTEST: radix_tree_replace_slot
    CONFTEST: pnv_npu2_init_context
    CONFTEST: cpumask_of_node
    CONFTEST: ioasid_get
    CONFTEST: mm_pasid_drop
    CONFTEST: mmget_not_zero
    CONFTEST: mmgrab
    CONFTEST: iommu_sva_bind_device_has_drvdata_arg
    CONFTEST: vm_fault_to_errno
    CONFTEST: acpi_video_backlight_use_native
    CONFTEST: drm_dev_unref
    CONFTEST: drm_reinit_primary_mode_group
    CONFTEST: get_user_pages_remote
    CONFTEST: get_user_pages
    CONFTEST: pin_user_pages_remote
    CONFTEST: pin_user_pages
    CONFTEST: drm_gem_object_lookup
    CONFTEST: drm_atomic_state_ref_counting
    CONFTEST: drm_driver_has_gem_prime_res_obj
    CONFTEST: drm_atomic_helper_connector_dpms
    CONFTEST: drm_connector_funcs_have_mode_in_name
    CONFTEST: drm_connector_has_vrr_capable_property
    CONFTEST: drm_framebuffer_get
    CONFTEST: drm_dev_put
    CONFTEST: drm_format_num_planes
    CONFTEST: drm_connector_for_each_possible_encoder
    CONFTEST: drm_rotation_available
    CONFTEST: drm_vma_offset_exact_lookup_locked
    CONFTEST: nvhost_dma_fence_unpack
    CONFTEST: is_export_symbol_gpl_of_node_to_nid
    CONFTEST: is_export_symbol_gpl_sme_active
    CONFTEST: is_export_symbol_present_swiotlb_map_sg_attrs
    CONFTEST: is_export_symbol_present_swiotlb_dma_ops
    CONFTEST: is_export_symbol_present___close_fd
    CONFTEST: is_export_symbol_present_close_fd
    CONFTEST: is_export_symbol_present_get_unused_fd
    CONFTEST: is_export_symbol_present_get_unused_fd_flags
    CONFTEST: is_export_symbol_present_nvhost_get_default_device
    CONFTEST: is_export_symbol_present_nvhost_syncpt_unit_interface_get_byte_offset
    CONFTEST: is_export_symbol_present_nvhost_syncpt_unit_interface_get_aperture
    CONFTEST: is_export_symbol_present_tegra_dce_register_ipc_client
    CONFTEST: is_export_symbol_present_tegra_dce_unregister_ipc_client
    CONFTEST: is_export_symbol_present_tegra_dce_client_ipc_send_recv
    CONFTEST: is_export_symbol_present_dram_clk_to_mc_clk
    CONFTEST: is_export_symbol_present_get_dram_num_channels
    CONFTEST: is_export_symbol_present_tegra_dram_types
    CONFTEST: is_export_symbol_present_pxm_to_node
    CONFTEST: is_export_symbol_present_screen_info
    CONFTEST: is_export_symbol_gpl_screen_info
    CONFTEST: is_export_symbol_present_i2c_bus_status
    CONFTEST: is_export_symbol_present_tegra_fuse_control_read
    CONFTEST: is_export_symbol_present_tegra_get_platform
    CONFTEST: is_export_symbol_present_pci_find_host_bridge
    CONFTEST: is_export_symbol_present_tsec_comms_send_cmd
    CONFTEST: is_export_symbol_present_tsec_comms_set_init_cb
    CONFTEST: is_export_symbol_present_tsec_comms_clear_init_cb
    CONFTEST: is_export_symbol_present_tsec_comms_alloc_mem_from_gscco
    CONFTEST: is_export_symbol_present_tsec_comms_free_gscco_mem
    CONFTEST: is_export_symbol_present_memory_block_size_bytes
    CONFTEST: crypto
    CONFTEST: is_export_symbol_present_int_active_memcg
    CONFTEST: is_export_symbol_present_migrate_vma_setup
    CONFTEST: dma_ops
    CONFTEST: swiotlb_dma_ops
    CONFTEST: noncoherent_swiotlb_dma_ops
    CONFTEST: vm_fault_has_address
    CONFTEST: vm_insert_pfn_prot
    CONFTEST: vmf_insert_pfn_prot
    CONFTEST: vm_ops_fault_removed_vma_arg
    CONFTEST: kmem_cache_has_kobj_remove_work
    CONFTEST: sysfs_slab_unlink
    CONFTEST: proc_ops
    CONFTEST: timespec64
    CONFTEST: vmalloc_has_pgprot_t_arg
    CONFTEST: mm_has_mmap_lock
    CONFTEST: pci_channel_state
    CONFTEST: pci_dev_has_ats_enabled
    CONFTEST: remove_memory_has_nid_arg
    CONFTEST: add_memory_driver_managed_has_mhp_flags_arg
    CONFTEST: num_registered_fb
    CONFTEST: pci_driver_has_driver_managed_dma
    CONFTEST: vm_area_struct_has_const_vm_flags
    CONFTEST: memory_failure_has_trapno_arg
    CONFTEST: backing_dev_info
    CONFTEST: mm_context_t
    CONFTEST: vm_fault_t
    CONFTEST: mmu_notifier_ops_invalidate_range
    CONFTEST: mmu_notifier_ops_arch_invalidate_secondary_tlbs
    CONFTEST: migrate_vma_added_flags
    CONFTEST: migrate_device_range
    CONFTEST: handle_mm_fault_has_mm_arg
    CONFTEST: handle_mm_fault_has_pt_regs_arg
    CONFTEST: mempolicy_has_unified_nodes
    CONFTEST: mempolicy_has_home_node
    CONFTEST: mpol_preferred_many_present
    CONFTEST: mmu_interval_notifier
    CONFTEST: drm_bus_present
    CONFTEST: drm_bus_has_bus_type
    CONFTEST: drm_bus_has_get_irq
    CONFTEST: drm_bus_has_get_name
    CONFTEST: drm_driver_has_device_list
    CONFTEST: drm_driver_has_legacy_dev_list
    CONFTEST: drm_driver_has_set_busid
    CONFTEST: drm_crtc_state_has_connectors_changed
    CONFTEST: drm_init_function_args
    CONFTEST: drm_helper_mode_fill_fb_struct
    CONFTEST: drm_master_drop_has_from_release_arg
    CONFTEST: drm_driver_unload_has_int_return_type
    CONFTEST: drm_atomic_helper_crtc_destroy_state_has_crtc_arg
    CONFTEST: drm_atomic_helper_plane_destroy_state_has_plane_arg
    CONFTEST: drm_mode_object_find_has_file_priv_arg
    CONFTEST: dma_buf_owner
    CONFTEST: drm_connector_list_iter
    CONFTEST: drm_atomic_helper_swap_state_has_stall_arg
    CONFTEST: drm_driver_prime_flag_present
    CONFTEST: drm_gem_object_has_resv
    CONFTEST: drm_crtc_state_has_async_flip
    CONFTEST: drm_crtc_state_has_pageflip_flags
    CONFTEST: drm_crtc_state_has_vrr_enabled
    CONFTEST: drm_format_modifiers_present
    CONFTEST: drm_vma_node_is_allowed_has_tag_arg
    CONFTEST: drm_vma_offset_node_has_readonly
    CONFTEST: drm_display_mode_has_vrefresh
    CONFTEST: drm_driver_master_set_has_int_return_type
    CONFTEST: drm_driver_has_gem_free_object
    CONFTEST: drm_prime_pages_to_sg_has_drm_device_arg
    CONFTEST: drm_driver_has_gem_prime_callbacks
    CONFTEST: drm_crtc_atomic_check_has_atomic_state_arg
    CONFTEST: drm_gem_object_vmap_has_map_arg
    CONFTEST: drm_plane_atomic_check_has_atomic_state_arg
    CONFTEST: drm_device_has_pdev
    CONFTEST: drm_crtc_state_has_no_vblank
    CONFTEST: drm_mode_config_has_allow_fb_modifiers
    CONFTEST: drm_has_hdr_output_metadata
    CONFTEST: dma_resv_add_fence
    CONFTEST: dma_resv_reserve_fences
    CONFTEST: reservation_object_reserve_shared_has_num_fences_arg
    CONFTEST: drm_connector_has_override_edid
    CONFTEST: drm_master_has_leases
    CONFTEST: drm_file_get_master
    CONFTEST: drm_modeset_lock_all_end
    CONFTEST: drm_connector_lookup
    CONFTEST: drm_connector_put
    CONFTEST: drm_driver_has_dumb_destroy
    CONFTEST: drm_unlocked_ioctl_flag_present
    CONFTEST: dom0_kernel_present
    CONFTEST: nvidia_vgpu_kvm_build
    CONFTEST: nvidia_grid_build
    CONFTEST: nvidia_grid_csp_build
    CONFTEST: pm_runtime_available
    CONFTEST: pci_class_multimedia_hd_audio
    CONFTEST: drm_available
    CONFTEST: vfio_pci_core_available
    CONFTEST: mdev_available
    CONFTEST: cmd_uphy_display_port_init
    CONFTEST: cmd_uphy_display_port_off
    CONFTEST: memory_failure_mf_sw_simulated_defined
    CONFTEST: drm_atomic_available
    CONFTEST: is_export_symbol_gpl_refcount_inc
    CONFTEST: is_export_symbol_gpl_refcount_dec_and_test
    CONFTEST: drm_alpha_blending_available
    CONFTEST: is_export_symbol_present_drm_gem_prime_fd_to_handle
    CONFTEST: is_export_symbol_present_drm_gem_prime_handle_to_fd
    CONFTEST: ib_peer_memory_symbols
     CC [M]  nvidia/nv.o
     CC [M]  nvidia/nv-pci.o
     CC [M]  nvidia/nv-dmabuf.o
     CC [M]  nvidia/nv-nano-timer.o
     CC [M]  nvidia/nv-acpi.o
     CC [M]  nvidia/nv-cray.o
     CC [M]  nvidia/nv-dma.o
     CC [M]  nvidia/nv-i2c.o
     CC [M]  nvidia/nv-mmap.o
     CC [M]  nvidia/nv-p2p.o
     CC [M]  nvidia/nv-pat.o
     CC [M]  nvidia/nv-procfs.o
     CC [M]  nvidia/nv-usermap.o
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv-acpi.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
     CC [M]  nvidia/nv-vm.o
     CC [M]  nvidia/nv-vtophys.o
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv-cray.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv-dma.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
     CC [M]  nvidia/os-interface.o
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv-mmap.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv-p2p.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv-pat.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv-procfs.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv-usermap.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv-vtophys.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/os-interface.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv-vm.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv-nano-timer.c:30:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv-p2p.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv-pat.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv-usermap.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv-dma.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv-acpi.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv-mmap.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/os-interface.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv-vtophys.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv.c:33:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-pci-types.h:28,
                    from nvidia/nv-pci.c:25:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv-nano-timer.c:31:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/nospec-branch.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/paravirt_types.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/ptrace.h:175,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/math_emu.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/processor.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/timex.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timex.h:67,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time32.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:60,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from nvidia/nv-nano-timer.c:27:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kasan-checks.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/asm-generic/rwonce.h:26,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/generated/asm/rwonce.h:1,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/compiler.h:344,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/array_size.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kernel.h:16,
                    from nvidia/nv-nano-timer.c:26:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34,
                    from ././common/inc/nv-pci.h:28,
                    from nvidia/nv-pci.c:26:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mmzone.h:22,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/gfp.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/xarray.h:16,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/radix-tree.h:21,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/idr.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kernfs.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sysfs.h:16,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kobject.h:20,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/pci.h:35,
                    from nvidia/nv-pci-table.h:27,
                    from nvidia/nv-pci.c:24:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mutex.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kernfs.h:11:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/scatterlist.h:8,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/dmapool.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/pci.h:1662:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv-cray.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/mei_uuid.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/mei.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mod_devicetable.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/pci.h:27:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv-vm.c:26:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from nvidia/nv-vm.c:25:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv.c:34:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mmzone.h:22,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/gfp.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/umh.h:4,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kmod.h:9,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/module.h:17,
                    from nvidia/nv.c:24:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/nospec-branch.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/paravirt_types.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/ptrace.h:175,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/math_emu.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/processor.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/timex.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timex.h:67,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time32.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:60,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stat.h:19,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/module.h:13:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kasan-checks.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/asm-generic/rwonce.h:26,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/generated/asm/rwonce.h:1,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/compiler.h:344,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/build_bug.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/container_of.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/list.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/module.h:12:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv-procfs.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/nv.h:41,
                    from ././common/inc/nv-linux.h:28,
                    from ././common/inc/nv-dmabuf.h:27,
                    from nvidia/nv-dmabuf.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mmzone.h:22,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/gfp.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/scatterlist.h:8,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/dma-buf.h:19,
                    from nvidia/nv-dmabuf.c:23:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/nospec-branch.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/irqflags.h:9,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/irqflags.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/special_insns.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/io.h:45,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/io.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/iosys-map.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/dma-buf.h:16:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/io.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv-i2c.c:28:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv-i2c.c:29:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mmzone.h:22,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/gfp.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/slab.h:16,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/resource_ext.h:11,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/acpi.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/i2c.h:13,
                    from nvidia/nv-i2c.c:26:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mmzone.h:8:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/memcontrol.h:21,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/swap.h:9,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/suspend.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/regulator/consumer.h:35,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/i2c.h:19:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kasan-checks.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/asm-generic/rwonce.h:26,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/generated/asm/rwonce.h:1,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/compiler.h:344,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/build_bug.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/bits.h:22,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ioport.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/acpi.h:12:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-usermap.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
     CC [M]  nvidia/os-mlock.o
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia/os-interface.c: At top level:
   nvidia/os-interface.c:370:7: warning: no previous prototype for 'os_mem_copy_custom' [-Wmissing-prototypes]
     370 | void *os_mem_copy_custom(
         |       ^~~~~~~~~~~~~~~~~~
   nvidia/os-interface.c: In function 'os_alloc_mem':
   ././common/inc/nv-linux.h:609:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     609 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/os-interface.c:584:13: note: in expansion of macro 'NV_KMALLOC_ATOMIC'
     584 |             NV_KMALLOC_ATOMIC(*address, alloc_size);
         |             ^~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:624:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     624 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/os-interface.c:590:13: note: in expansion of macro 'NV_KMALLOC_NO_OOM'
     590 |             NV_KMALLOC_NO_OOM(*address, alloc_size);
         |             ^~~~~~~~~~~~~~~~~
   nvidia/os-interface.c: In function 'os_get_current_time':
   nvidia/os-interface.c:633:25: error: passing argument 1 of 'ktime_get_real_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     633 |     ktime_get_real_ts64(&tm);
         |                         ^~~
         |                         |
         |                         struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:44:52: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      44 | extern void ktime_get_real_ts64(struct timespec64 *tv);
         |                                 ~~~~~~~~~~~~~~~~~~~^~
   nvidia/os-interface.c: In function 'os_get_current_tick_hr':
   nvidia/os-interface.c:647:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     647 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia/os-interface.c: In function 'os_get_current_tick':
   nvidia/os-interface.c:656:21: error: storage size of 'ts' isn't known
     656 |     struct timespec ts;
         |                     ^~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-pat.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
     CC [M]  nvidia/os-pci.o
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/os-mlock.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-vtophys.o] Error 1
   nvidia/nv-pci.c: In function 'nv_pci_probe':
   ././common/inc/nv-linux.h:602:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     602 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv-pci.c:396:5: note: in expansion of macro 'NV_KZALLOC'
     396 |     NV_KZALLOC(nvl, sizeof(nv_linux_state_t));
         |     ^~~~~~~~~~
     CC [M]  nvidia/os-registry.o
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/os-pci.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   nvidia/nv-dma.c: At top level:
   nvidia/nv-dma.c:293:6: warning: no previous prototype for 'nv_load_dma_map_scatterlist' [-Wmissing-prototypes]
     293 | void nv_load_dma_map_scatterlist(
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia/nv-dma.c:489:23: warning: no previous prototype for 'nv_dma_unmap_sgt' [-Wmissing-prototypes]
     489 | NV_STATUS NV_API_CALL nv_dma_unmap_sgt(
         |                       ^~~~~~~~~~~~~~~~
   nvidia/os-interface.c:657:5: error: implicit declaration of function 'jiffies_to_timespec'; did you mean 'jiffies_to_timespec64'? [-Wimplicit-function-declaration]
     657 |     jiffies_to_timespec(jiffies, &ts);
         |     ^~~~~~~~~~~~~~~~~~~
         |     jiffies_to_timespec64
   nvidia/nv-mmap.c: At top level:
   nvidia/nv-mmap.c:299:15: error: initialization of 'vm_fault_t (*)(struct vm_fault *)' {aka 'unsigned int (*)(struct vm_fault *)'} from incompatible pointer type 'vm_fault_t (*)(struct vm_area_struct *, struct vm_fault *)' {aka 'int (*)(struct vm_area_struct *, struct vm_fault *)'} [-Wincompatible-pointer-types]
     299 |     .fault  = nvidia_fault,
         |               ^~~~~~~~~~~~
   nvidia/nv-mmap.c:299:15: note: (near initialization for 'nv_vm_ops.fault')
   nvidia/nv-mmap.c:201:19: note: 'nvidia_fault' declared here
     201 | static vm_fault_t nvidia_fault(
         |                   ^~~~~~~~~~~~
   nvidia/nv-mmap.c:303:5: warning: conflicting types for 'nv_encode_caching' due to enum/integer mismatch; have 'int(pgprot_t *, NvU32,  nv_memory_type_t)' {aka 'int(struct pgprot *, unsigned int,  nv_memory_type_t)'} [-Wenum-int-mismatch]
     303 | int nv_encode_caching(
         |     ^~~~~~~~~~~~~~~~~
   In file included from ././common/inc/nv-linux.h:1761:
   ././common/inc/nv-proto.h:46:13: note: previous declaration of 'nv_encode_caching' with type 'int(pgprot_t *, NvU32,  NvU32)' {aka 'int(struct pgprot *, unsigned int,  unsigned int)'}
      46 | int         nv_encode_caching           (pgprot_t *, NvU32, NvU32);
         |             ^~~~~~~~~~~~~~~~~
   nvidia/nv-mmap.c:371:1: warning: 'static' is not at beginning of declaration [-Wold-style-declaration]
     371 | int static nvidia_mmap_peer_io(
         | ^~~
   nvidia/nv-mmap.c:392:1: warning: 'static' is not at beginning of declaration [-Wold-style-declaration]
     392 | int static nvidia_mmap_sysmem(
         | ^~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-p2p.o] Error 1
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/os-registry.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
     CC [M]  nvidia/os-usermap.o
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-acpi.o] Error 1
     CC [M]  nvidia/nv-modeset-interface.o
   nvidia/os-interface.c:658:20: error: implicit declaration of function 'timespec_to_ns'; did you mean 'timespec64_to_ns'? [-Wimplicit-function-declaration]
     658 |     return (NvU64) timespec_to_ns(&ts);
         |                    ^~~~~~~~~~~~~~
         |                    timespec64_to_ns
   nvidia/os-interface.c:656:21: warning: unused variable 'ts' [-Wunused-variable]
     656 |     struct timespec ts;
         |                     ^~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-pci.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   nvidia/os-interface.c: In function 'os_queue_work_item':
   ././common/inc/nv-linux.h:609:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     609 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/os-interface.c:1113:5: note: in expansion of macro 'NV_KMALLOC_ATOMIC'
    1113 |     NV_KMALLOC_ATOMIC(oqd, sizeof(os_queue_data_t));
         |     ^~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
     CC [M]  nvidia/nv-pci-table.o
   nvidia/os-interface.c: In function 'os_write_file':
   nvidia/os-interface.c:1792:54: error: passing argument 4 of 'kernel_write' makes pointer from integer without a cast [-Wint-conversion]
    1792 |     num_written = kernel_write(pFile, pBuffer, size, f_pos);
         |                                                      ^~~~~
         |                                                      |
         |                                                      loff_t {aka long long int}
   nvidia/os-interface.c:1792:54: note: possible fix: take the address with '&'
    1792 |     num_written = kernel_write(pFile, pBuffer, size, f_pos);
         |                                                      ^~~~~
         |                                                      &
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/huge_mm.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:1133:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:3189:66: note: expected 'loff_t *' {aka 'long long int *'} but argument is of type 'loff_t' {aka 'long long int'}
    3189 | extern ssize_t kernel_write(struct file *, const void *, size_t, loff_t *);
         |                                                                  ^~~~~~~~
   nvidia/os-interface.c: In function 'os_read_file':
   nvidia/os-interface.c:1832:35: error: passing argument 2 of 'kernel_read' makes pointer from integer without a cast [-Wint-conversion]
    1832 |     num_read = kernel_read(pFile, f_pos, pBuffer, size);
         |                                   ^~~~~
         |                                   |
         |                                   loff_t {aka long long int}
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-dma.o] Error 1
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:3187:43: note: expected 'void *' but argument is of type 'loff_t' {aka 'long long int'}
    3187 | extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
         |                                           ^~~~~~
   nvidia/os-interface.c:1832:42: error: passing argument 3 of 'kernel_read' makes integer from pointer without a cast [-Wint-conversion]
    1832 |     num_read = kernel_read(pFile, f_pos, pBuffer, size);
         |                                          ^~~~~~~
         |                                          |
         |                                          NvU8 * {aka unsigned char *}
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:3187:51: note: expected 'size_t' {aka 'long unsigned int'} but argument is of type 'NvU8 *' {aka 'unsigned char *'}
    3187 | extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
         |                                                   ^~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia/os-interface.c:1832:51: error: passing argument 4 of 'kernel_read' makes pointer from integer without a cast [-Wint-conversion]
    1832 |     num_read = kernel_read(pFile, f_pos, pBuffer, size);
         |                                                   ^~~~
         |                                                   |
         |                                                   NvU64 {aka long long unsigned int}
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:3187:59: note: expected 'loff_t *' {aka 'long long int *'} but argument is of type 'NvU64' {aka 'long long unsigned int'}
    3187 | extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
         |                                                           ^~~~~~~~
   nvidia/os-interface.c: In function 'os_alloc_wait_queue':
   ././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     595 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/os-interface.c:1945:5: note: in expansion of macro 'NV_KMALLOC'
    1945 |     NV_KMALLOC(*wq, sizeof(os_wait_queue));
         |     ^~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/os-usermap.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
     CC [M]  nvidia/nv-kthread-q.o
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-mmap.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv-modeset-interface.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
     CC [M]  nvidia/nv-memdbg.o
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-i2c.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
     CC [M]  nvidia/nv-ibmnpu.o
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/nv.h:41,
                    from ././common/inc/nv-linux.h:28,
                    from nvidia/nv-memdbg.c:25:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/os-interface.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
     CC [M]  nvidia/nv-report-err.o
   nvidia/nv-nano-timer.c: In function 'nv_alloc_nano_timer':
   ././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     595 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv-nano-timer.c:86:5: note: in expansion of macro 'NV_KMALLOC'
      86 |     NV_KMALLOC(nv_nstimer, sizeof(nv_nano_timer_t));
         |     ^~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/nv.h:41,
                    from ././common/inc/nv-linux.h:28,
                    from nvidia/nv-ibmnpu.c:27:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/nv.h:41,
                    from ././common/inc/nv-linux.h:28,
                    from nvidia/nv-report-err.c:25:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-nano-timer.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/sound/hdaudio.h:18,
                    from nvidia/nv.c:70:
   /usr/lib/modules/6.14.6-arch1-1/build/include/sound/pcm.h: In function 'snd_pcm_gettime':
   /usr/lib/modules/6.14.6-arch1-1/build/include/sound/pcm.h:1292:32: error: passing argument 1 of 'ktime_get_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
    1292 |                 ktime_get_ts64(tv);
         |                                ^~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:43:47: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      43 | extern void ktime_get_ts64(struct timespec64 *ts);
         |                            ~~~~~~~~~~~~~~~~~~~^~
   /usr/lib/modules/6.14.6-arch1-1/build/include/sound/pcm.h:1295:36: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
    1295 |                 ktime_get_raw_ts64(tv);
         |                                    ^~
         |                                    |
         |                                    struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   /usr/lib/modules/6.14.6-arch1-1/build/include/sound/pcm.h:1298:37: error: passing argument 1 of 'ktime_get_real_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
    1298 |                 ktime_get_real_ts64(tv);
         |                                     ^~
         |                                     |
         |                                     struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:44:52: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      44 | extern void ktime_get_real_ts64(struct timespec64 *tv);
         |                                 ~~~~~~~~~~~~~~~~~~~^~
     CC [M]  nvidia/nv-rsync.o
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-cray.o] Error 1
   nvidia/nv.c: In function 'nvos_create_alloc':
   ././common/inc/nv-linux.h:602:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     602 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv.c:262:5: note: in expansion of macro 'NV_KZALLOC'
     262 |     NV_KZALLOC(at, sizeof(nv_alloc_t));
         |     ^~~~~~~~~~
     CC [M]  nvidia/nv-msi.o
   nvidia/nv.c: At top level:
   nvidia/nv.c:735:12: warning: no previous prototype for 'nvidia_init_module' [-Wmissing-prototypes]
     735 | int __init nvidia_init_module(void)
         |            ^~~~~~~~~~~~~~~~~~
   nvidia/nv.c:855:6: warning: no previous prototype for 'nvidia_exit_module' [-Wmissing-prototypes]
     855 | void nvidia_exit_module(void)
         |      ^~~~~~~~~~~~~~~~~~
   nvidia/nv.c: In function 'nv_alloc_file_private':
   ././common/inc/nv-linux.h:602:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     602 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv.c:879:5: note: in expansion of macro 'NV_KZALLOC'
     879 |     NV_KZALLOC(nvlfp, sizeof(nv_linux_file_private_t));
         |     ^~~~~~~~~~
   nvidia/nv.c: At top level:
   nvidia/nv.c:1124:23: warning: no previous prototype for 'nv_get_num_dpaux_instances' [-Wmissing-prototypes]
    1124 | NV_STATUS NV_API_CALL nv_get_num_dpaux_instances(nv_state_t *nv, NvU32 *num_instances)
         |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia/nv-vm.c: In function 'nv_set_memory_array_type':
   nvidia/nv-vm.c:92:13: error: implicit declaration of function 'set_memory_array_uc'; did you mean 'set_pages_array_uc'? [-Wimplicit-function-declaration]
      92 |             set_memory_array_uc(pages, num_pages);
         |             ^~~~~~~~~~~~~~~~~~~
         |             set_pages_array_uc
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/nv.h:41,
                    from ././common/inc/nv-linux.h:28,
                    from nvidia/nv-rsync.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   nvidia/nv.c: In function 'nvidia_ioctl':
   ././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     595 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv.c:2104:5: note: in expansion of macro 'NV_KMALLOC'
    2104 |     NV_KMALLOC(arg_copy, arg_size);
         |     ^~~~~~~~~~
   nvidia/nv-procfs.c: In function 'nv_procfs_open_file':
   ././common/inc/nv-linux.h:602:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     602 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv-procfs.c:276:5: note: in expansion of macro 'NV_KZALLOC'
     276 |     NV_KZALLOC(nvpp, sizeof(nv_procfs_private_t));
         |     ^~~~~~~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-dmabuf.o] Error 1
   ././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     595 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv.c:2165:13: note: in expansion of macro 'NV_KMALLOC'
    2165 |             NV_KMALLOC(nvlfp->attached_gpus, arg_size);
         |             ^~~~~~~~~~
   nvidia/nv-procfs.c: At top level:
   nvidia/nv-procfs.c:698:1: warning: no previous prototype for 'exercise_error_forwarding_va' [-Wmissing-prototypes]
     698 | exercise_error_forwarding_va(
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia/nv.c: In function 'nv_map_guest_pages':
   ././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     595 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv.c:2805:5: note: in expansion of macro 'NV_KMALLOC'
    2805 |     NV_KMALLOC(pages, sizeof(struct page *) * page_count);
         |     ^~~~~~~~~~
     CC [M]  nvidia/nv-caps.o
   In file included from ././common/inc/nv-procfs.h:26,
                    from nvidia/nv-procfs.c:31:
   nvidia/nv-procfs.c: In function 'nv_procfs_add_text_file':
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-procfs.c:1312:5: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    1312 |     NV_CREATE_PROC_FILE(filename, parent, text_file, (void *)text);
         |     ^~~~~~~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/efi.h:19,
                    from ././common/inc/nv-linux.h:220:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/nv.h:41,
                    from ././common/inc/nv-linux.h:28,
                    from ././common/inc/nv-msi.h:27,
                    from nvidia/nv-msi.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   nvidia/nv.c: In function 'nv_alloc_kernel_mapping':
   ././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     595 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv.c:3282:13: note: in expansion of macro 'NV_KMALLOC'
    3282 |             NV_KMALLOC(pages, sizeof(struct page *) * page_count);
         |             ^~~~~~~~~~
   nvidia/nv-procfs.c: In function 'nv_procfs_init':
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-procfs.c:1342:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    1342 |     entry = NV_CREATE_PROC_FILE("params", proc_nvidia, params, NULL);
         |             ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-procfs.c:1346:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    1346 |     entry = NV_CREATE_PROC_FILE("registry", proc_nvidia, registry, NULL);
         |             ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-procfs.c:1351:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    1351 |     entry = NV_CREATE_PROC_FILE("suspend_depth", proc_nvidia, suspend_depth, NULL);
         |             ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-procfs.c:1355:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    1355 |     entry = NV_CREATE_PROC_FILE("suspend", proc_nvidia, suspend, NULL);
         |             ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-procfs.c:1377:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    1377 |     entry = NV_CREATE_PROC_FILE("version", proc_nvidia, version, NULL);
         |             ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   nvidia/nv.c: In function 'nv_post_event':
   nvidia/nv-procfs.c: In function 'nv_procfs_add_gpu':
   ././common/inc/nv-linux.h:609:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     609 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv.c:3554:9: note: in expansion of macro 'NV_KMALLOC_ATOMIC'
    3554 |         NV_KMALLOC_ATOMIC(nvet, sizeof(nvidia_event_t));
         |         ^~~~~~~~~~~~~~~~~
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-procfs.c:1419:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    1419 |     entry = NV_CREATE_PROC_FILE("information", proc_nvidia_gpu, gpu_info,
         |             ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-procfs.c:1424:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    1424 |     entry = NV_CREATE_PROC_FILE("registry", proc_nvidia_gpu, registry, nv);
         |             ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-procfs.c:1428:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    1428 |     entry = NV_CREATE_PROC_FILE("power", proc_nvidia_gpu, power, nv);
         |             ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-procfs.c:1434:17: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    1434 |         entry = NV_CREATE_PROC_FILE("exercise_error_forwarding", proc_nvidia_gpu,
         |                 ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-procfs.c:1442:17: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    1442 |         entry = NV_CREATE_PROC_FILE("unbindLock", proc_nvidia_gpu, unbind_lock, nv);
         |                 ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-procfs.c:1449:17: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    1449 |         entry = NV_CREATE_PROC_FILE("numa_status", proc_nvidia_gpu, numa_status,
         |                 ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-procfs.c:1454:17: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    1454 |         entry = NV_CREATE_PROC_FILE("offline_pages", proc_nvidia_gpu, offline_pages,
         |                 ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/nv.h:41,
                    from ././common/inc/nv-linux.h:28,
                    from nvidia/nv-caps.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   nvidia/nv-vm.c:95:13: error: implicit declaration of function 'set_memory_array_wb'; did you mean 'set_pages_array_wb'? [-Wimplicit-function-declaration]
      95 |             set_memory_array_wb(pages, num_pages);
         |             ^~~~~~~~~~~~~~~~~~~
         |             set_pages_array_wb
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-procfs.o] Error 1
     CC [M]  nvidia/nv-frontend.o
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv.o] Error 1
     CC [M]  nvidia/nv_uvm_interface.o
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-vm.o] Error 1
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv-frontend.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
     CC [M]  nvidia/libspdm_aead.o
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv_uvm_interface.c:32:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from nvidia/internal_crypt_lib.h:32,
                    from nvidia/libspdm_aead.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-kthread-q.h:33,
                    from nvidia/nv-kthread-q.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   nvidia/libspdm_aead.c:41:5: warning: no previous prototype for 'libspdm_aead_prealloc' [-Wmissing-prototypes]
      41 | int libspdm_aead_prealloc(void **context, char const *alg)
         |     ^~~~~~~~~~~~~~~~~~~~~
   nvidia/libspdm_aead.c:171:5: warning: no previous prototype for 'libspdm_aead_prealloced' [-Wmissing-prototypes]
     171 | int libspdm_aead_prealloced(void *context,
         |     ^~~~~~~~~~~~~~~~~~~~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/libspdm_aead.o] Error 1
     CC [M]  nvidia/libspdm_ecc.o
     CC [M]  nvidia/libspdm_hkdf.o
   In file included from ././common/inc/conftest.h:28,
                    from nvidia/internal_crypt_lib.h:32,
                    from nvidia/libspdm_hkdf.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/os-mlock.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/os-pci.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/os-registry.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv-modeset-interface.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/libspdm_hkdf.o] Error 1
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
     CC [M]  nvidia/libspdm_rand.o
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:34:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/os-usermap.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   In file included from ././common/inc/nv-linux.h:34:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from ././common/inc/nv.h:35:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
     CC [M]  nvidia/libspdm_shash.o
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/conftest.h:28,
                    from nvidia/internal_crypt_lib.h:32,
                    from nvidia/libspdm_shash.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   nvidia/nv-kthread-q.c: In function 'thread_create_on_node':
   nvidia/nv-kthread-q.c:179:5: warning: 'static' is not at beginning of declaration [-Wold-style-declaration]
     179 |     const static unsigned attempts = 3;
         |     ^~~~~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-kthread-q.o] Error 1
     CC [M]  nvidia/libspdm_aead_aes_gcm.o
     CC [M]  nvidia/libspdm_sha.o
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
     CC [M]  nvidia/libspdm_hmac_sha.o
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
     CC [M]  nvidia/libspdm_hkdf_sha.o
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/libspdm_shash.o] Error 1
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv-frontend.c:25:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
     CC [M]  nvidia/libspdm_ec.o
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
     CC [M]  nvidia/libspdm_x509.o
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:34:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
     CC [M]  nvidia/nvlink_linux.o
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
     CC [M]  nvidia/nvlink_caps.o
   In file included from ././common/inc/nv-linux.h:34:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
     CC [M]  nvidia/linux_nvswitch.o
   In file included from ././common/inc/conftest.h:28,
                    from nvidia/nvlink_linux.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv_uvm_interface.c:33:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/nv.h:41,
                    from ././common/inc/nv-linux.h:28,
                    from nvidia/linux_nvswitch.h:28,
                    from nvidia/linux_nvswitch.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   nvidia/os-mlock.c: In function 'nv_follow_pfn':
   nvidia/os-mlock.c:34:12: error: implicit declaration of function 'unsafe_follow_pfn'; did you mean 'nv_follow_pfn'? [-Wimplicit-function-declaration]
      34 |     return unsafe_follow_pfn(vma, address, pfn);
         |            ^~~~~~~~~~~~~~~~~
         |            nv_follow_pfn
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/os-mlock.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
     CC [M]  nvidia/procfs_nvswitch.o
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/os-pci.o] Error 1
     CC [M]  nvidia/i2c_nvswitch.o
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/nv.h:41,
                    from ././common/inc/nv-linux.h:28,
                    from nvidia/linux_nvswitch.h:28,
                    from nvidia/procfs_nvswitch.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/nv.h:41,
                    from ././common/inc/nv-linux.h:28,
                    from nvidia/linux_nvswitch.h:28,
                    from nvidia/i2c_nvswitch.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/os-registry.o] Error 1
     CC [M]  nvidia-uvm/uvm_ats_sva.o
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-modeset-interface.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
     CC [M]  nvidia-uvm/uvm_conf_computing.o
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_gpu.h:31,
                    from nvidia-uvm/uvm_ats_sva.h:27,
                    from nvidia-uvm/uvm_ats_sva.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_conf_computing.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-report-err.o] Error 1
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
     CC [M]  nvidia-uvm/uvm_sec2_test.o
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-memdbg.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
     CC [M]  nvidia-uvm/uvm_maxwell_sec2.o
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from ././nvidia-uvm/uvm_linux.h:37,
                    from ././nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_sec2_test.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_gpu.h:31,
                    from nvidia-uvm/uvm_maxwell_sec2.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   nvidia/nv-ibmnpu.c: At top level:
   nvidia/nv-ibmnpu.c:395:6: warning: no previous prototype for 'nv_init_ibmnpu_info' [-Wmissing-prototypes]
     395 | void nv_init_ibmnpu_info(nv_state_t *nv)
         |      ^~~~~~~~~~~~~~~~~~~
   nvidia/nv-ibmnpu.c:399:6: warning: no previous prototype for 'nv_destroy_ibmnpu_info' [-Wmissing-prototypes]
     399 | void nv_destroy_ibmnpu_info(nv_state_t *nv)
         |      ^~~~~~~~~~~~~~~~~~~~~~
   nvidia/nv-ibmnpu.c:403:5: warning: no previous prototype for 'nv_init_ibmnpu_devices' [-Wmissing-prototypes]
     403 | int nv_init_ibmnpu_devices(nv_state_t *nv)
         |     ^~~~~~~~~~~~~~~~~~~~~~
   nvidia/nv-ibmnpu.c:408:6: warning: no previous prototype for 'nv_unregister_ibmnpu_devices' [-Wmissing-prototypes]
     408 | void nv_unregister_ibmnpu_devices(nv_state_t *nv)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia/nv-ibmnpu.c:428:5: warning: no previous prototype for 'nv_get_ibmnpu_chip_id' [-Wmissing-prototypes]
     428 | int nv_get_ibmnpu_chip_id(nv_state_t *nv)
         |     ^~~~~~~~~~~~~~~~~~~~~
   nvidia/nv-ibmnpu.c:437:6: warning: no previous prototype for 'nv_ibmnpu_cache_flush_numa_region' [-Wmissing-prototypes]
     437 | void nv_ibmnpu_cache_flush_numa_region(nv_state_t *nv)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/os-usermap.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
     CC [M]  nvidia-uvm/uvm_hopper_sec2.o
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-ibmnpu.o] Error 1
     CC [M]  nvidia-uvm/uvm_common.o
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_hal.h:28,
                    from nvidia-uvm/uvm_hopper_sec2.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-rsync.o] Error 1
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_common.c:20:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
     CC [M]  nvidia-uvm/uvm_linux.o
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_linux.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-frontend.o] Error 1
     CC [M]  nvidia-uvm/nvstatus.o
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   nvidia/nv-msi.c: In function 'nv_init_msi':
   ././common/inc/nv-linux.h:602:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     602 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv-msi.c:39:9: note: in expansion of macro 'NV_KZALLOC'
      39 |         NV_KZALLOC(nvl->irq_count, sizeof(nv_irq_count_info_t) * nvl->num_intr);
         |         ^~~~~~~~~~
   nvidia/nv-msi.c: In function 'nv_init_msix':
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     595 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv-msi.c:90:5: note: in expansion of macro 'NV_KMALLOC'
      90 |     NV_KMALLOC(nvl->msix_entries, sizeof(struct msix_entry) * num_intr);
         |     ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:602:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     602 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv-msi.c:102:5: note: in expansion of macro 'NV_KZALLOC'
     102 |     NV_KZALLOC(nvl->irq_count, sizeof(nv_irq_count_info_t) * num_intr);
         |     ^~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-msi.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
     CC [M]  nvidia-uvm/nv-kthread-q.o
     CC [M]  nvidia-uvm/nvCpuUuid.o
     CC [M]  nvidia-uvm/nv-kthread-q-selftest.o
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
     CC [M]  nvidia-uvm/uvm.o
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv_uvm_interface.o] Error 1
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nvlink_linux.c:30:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mmzone.h:22,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/gfp.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/xarray.h:16,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/list_lru.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:13,
                    from nvidia/nvlink_linux.h:30,
                    from nvidia/nvlink_linux.c:27:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from nvidia/nvlink_linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kasan-checks.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/asm-generic/rwonce.h:26,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/generated/asm/rwonce.h:1,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/compiler.h:344,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/build_bug.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/init.h:5,
                    from nvidia/nvlink_linux.h:27:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
     CC [M]  nvidia-uvm/uvm_tools.o
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_api.h:28,
                    from nvidia-uvm/uvm.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stat.h:19,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:10:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_tools.c:23:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia/nv-caps.c: At top level:
   nvidia/nv-caps.c:269:5: warning: no previous prototype for 'nv_cap_procfs_init' [-Wmissing-prototypes]
     269 | int nv_cap_procfs_init(void)
         |     ^~~~~~~~~~~~~~~~~~
   In file included from ././common/inc/nv-procfs.h:26,
                    from nvidia/nv-caps.c:26:
   nvidia/nv-caps.c: In function 'nv_cap_procfs_init':
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-caps.c:279:18: note: in expansion of macro 'NV_CREATE_PROC_FILE'
     279 |     file_entry = NV_CREATE_PROC_FILE("mig-minors", nv_cap_procfs_dir,
         |                  ^~~~~~~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/efi.h:19,
                    from ././common/inc/nv-linux.h:220:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-caps.c:286:18: note: in expansion of macro 'NV_CREATE_PROC_FILE'
     286 |     file_entry = NV_CREATE_PROC_FILE("nvlink-minors", nv_cap_procfs_dir,
         |                  ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-caps.c:293:18: note: in expansion of macro 'NV_CREATE_PROC_FILE'
     293 |     file_entry = NV_CREATE_PROC_FILE("sys-minors", nv_cap_procfs_dir,
         |                  ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/string.h:392,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/bitmap.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/cpumask.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/paravirt.h:21,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/irqflags.h:102,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/irqflags.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:59:
   nvidia/nv-caps.c: In function 'nv_cap_find_minor':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/fortify-string.h:259:38: error: passing argument 2 of 'full_name_hash' makes pointer from integer without a cast [-Wint-conversion]
     258 |         __builtin_choose_expr(__is_constexpr(__builtin_strlen(p)),      \
         |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     259 |                 __builtin_strlen(p), __fortify_strlen(p))
         |                 ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
         |                                      |
         |                                      __kernel_size_t {aka long unsigned int}
   ././common/inc/nv-hash.h:41:51: note: in expansion of macro 'strlen'
      41 | #define nv_string_hash(_str) full_name_hash(_str, strlen(_str))
         |                                                   ^~~~~~
   nvidia/nv-caps.c:42:32: note: in expansion of macro 'nv_string_hash'
      42 | #define nv_cap_hash_key(path) (nv_string_hash(path) % NV_CAP_HASH_SIZE)
         |                                ^~~~~~~~~~~~~~
   nvidia/nv-caps.c:310:24: note: in expansion of macro 'nv_cap_hash_key'
     310 |     unsigned int key = nv_cap_hash_key(path);
         |                        ^~~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/dcache.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:8,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/huge_mm.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:1133:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stringhash.h:66:61: note: expected 'const char *' but argument is of type '__kernel_size_t' {aka 'long unsigned int'}
      66 | extern unsigned int __pure full_name_hash(const void *salt, const char *, unsigned int);
         |                                                             ^~~~~~~~~~~~
   In file included from nvidia/nv-caps.c:27:
   ././common/inc/nv-hash.h:41:30: error: too few arguments to function 'full_name_hash'; expected 3, have 2
      41 | #define nv_string_hash(_str) full_name_hash(_str, strlen(_str))
         |                              ^~~~~~~~~~~~~~
   nvidia/nv-caps.c:42:32: note: in expansion of macro 'nv_string_hash'
      42 | #define nv_cap_hash_key(path) (nv_string_hash(path) % NV_CAP_HASH_SIZE)
         |                                ^~~~~~~~~~~~~~
   nvidia/nv-caps.c:310:24: note: in expansion of macro 'nv_cap_hash_key'
     310 |     unsigned int key = nv_cap_hash_key(path);
         |                        ^~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stringhash.h:66:28: note: declared here
      66 | extern unsigned int __pure full_name_hash(const void *salt, const char *, unsigned int);
         |                            ^~~~~~~~~~~~~~
   nvidia/nv-caps.c: In function '_nv_cap_table_init':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/fortify-string.h:259:38: error: passing argument 2 of 'full_name_hash' makes pointer from integer without a cast [-Wint-conversion]
     258 |         __builtin_choose_expr(__is_constexpr(__builtin_strlen(p)),      \
         |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     259 |                 __builtin_strlen(p), __fortify_strlen(p))
         |                 ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
         |                                      |
         |                                      __kernel_size_t {aka long unsigned int}
   ././common/inc/nv-hash.h:41:51: note: in expansion of macro 'strlen'
      41 | #define nv_string_hash(_str) full_name_hash(_str, strlen(_str))
         |                                                   ^~~~~~
   nvidia/nv-caps.c:42:32: note: in expansion of macro 'nv_string_hash'
      42 | #define nv_cap_hash_key(path) (nv_string_hash(path) % NV_CAP_HASH_SIZE)
         |                                ^~~~~~~~~~~~~~
   nvidia/nv-caps.c:334:15: note: in expansion of macro 'nv_cap_hash_key'
     334 |         key = nv_cap_hash_key(table[i].name);
         |               ^~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stringhash.h:66:61: note: expected 'const char *' but argument is of type '__kernel_size_t' {aka 'long unsigned int'}
      66 | extern unsigned int __pure full_name_hash(const void *salt, const char *, unsigned int);
         |                                                             ^~~~~~~~~~~~
   ././common/inc/nv-hash.h:41:30: error: too few arguments to function 'full_name_hash'; expected 3, have 2
      41 | #define nv_string_hash(_str) full_name_hash(_str, strlen(_str))
         |                              ^~~~~~~~~~~~~~
   nvidia/nv-caps.c:42:32: note: in expansion of macro 'nv_string_hash'
      42 | #define nv_cap_hash_key(path) (nv_string_hash(path) % NV_CAP_HASH_SIZE)
         |                                ^~~~~~~~~~~~~~
   nvidia/nv-caps.c:334:15: note: in expansion of macro 'nv_cap_hash_key'
     334 |         key = nv_cap_hash_key(table[i].name);
         |               ^~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stringhash.h:66:28: note: declared here
      66 | extern unsigned int __pure full_name_hash(const void *salt, const char *, unsigned int);
         |                            ^~~~~~~~~~~~~~
   nvidia/nv-caps.c: In function 'nv_cap_procfs_open':
   ././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     595 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv-caps.c:410:5: note: in expansion of macro 'NV_KMALLOC'
     410 |     NV_KMALLOC(private, sizeof(nv_cap_file_private_t));
         |     ^~~~~~~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   nvidia/nv-caps.c: In function 'nv_cap_alloc':
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     595 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv-caps.c:614:5: note: in expansion of macro 'NV_KMALLOC'
     614 |     NV_KMALLOC(cap, sizeof(nv_cap_t));
         |     ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     595 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv-caps.c:621:5: note: in expansion of macro 'NV_KMALLOC'
     621 |     NV_KMALLOC(cap->path, len);
         |     ^~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     595 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv-caps.c:633:5: note: in expansion of macro 'NV_KMALLOC'
     633 |     NV_KMALLOC(cap->name, len);
         |     ^~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia/nv-caps.c: In function 'nv_cap_create_file_entry':
   nvidia/nv-caps.c:688:35: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
     688 |                                   &g_nv_cap_procfs_fops, (void*)cap);
         |                                   ^~~~~~~~~~~~~~~~~~~~~
         |                                   |
         |                                   nv_proc_ops_t * {aka struct file_operations *}
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'nv_proc_ops_t *' {aka 'struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia/nv-caps.c: In function 'nv_cap_init':
   ././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     595 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv-caps.c:738:5: note: in expansion of macro 'NV_KMALLOC'
     738 |     NV_KMALLOC(name, (strlen(path) + strlen(dir)) + 1);
         |     ^~~~~~~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-caps.o] Error 1
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
     CC [M]  nvidia-uvm/uvm_global.o
   In file included from ././common/inc/nv-linux.h:34:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_api.h:28,
                    from nvidia-uvm/uvm_global.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-kthread-q.h:33,
                    from nvidia-uvm/nv-kthread-q.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-kthread-q.h:33,
                    from nvidia-uvm/nv-kthread-q-selftest.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from ././nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia/linux_nvswitch.c: At top level:
   nvidia/linux_nvswitch.c:52:1: warning: 'static' is not at beginning of declaration [-Wold-style-declaration]
      52 | const static struct
         | ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   nvidia/linux_nvswitch.c:1705:1: warning: no previous prototype for 'nvswitch_init' [-Wmissing-prototypes]
    1705 | nvswitch_init
         | ^~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia/linux_nvswitch.c:1790:1: warning: no previous prototype for 'nvswitch_exit' [-Wmissing-prototypes]
    1790 | nvswitch_exit
         | ^~~~~~~~~~~~~
   nvidia/linux_nvswitch.c: In function 'nvswitch_os_get_platform_time':
   nvidia/linux_nvswitch.c:1827:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
    1827 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia/linux_nvswitch.c: In function 'nvswitch_os_get_platform_time_epoch':
   nvidia/linux_nvswitch.c:1849:25: error: passing argument 1 of 'ktime_get_real_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
    1849 |     ktime_get_real_ts64(&ts);
         |                         ^~~
         |                         |
         |                         struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:44:52: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      44 | extern void ktime_get_real_ts64(struct timespec64 *tv);
         |                                 ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/nv-kthread-q.c: In function 'thread_create_on_node':
   nvidia-uvm/nv-kthread-q.c:179:5: warning: 'static' is not at beginning of declaration [-Wold-style-declaration]
     179 |     const static unsigned attempts = 3;
         |     ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/nv-kthread-q.o] Error 1
     CC [M]  nvidia-uvm/uvm_gpu.o
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/linux_nvswitch.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
     CC [M]  nvidia-uvm/uvm_gpu_isr.o
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from ././nvidia-uvm/uvm_linux.h:37,
                    from ././common/inc/nv_uvm_interface.h:37,
                    from nvidia-uvm/uvm_gpu.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/nv-procfs.h:26,
                    from nvidia/nvlink_linux.c:31:
   nvidia/nvlink_linux.c: In function 'nvlink_permissions_init':
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nvlink_linux.c:115:26: note: in expansion of macro 'NV_CREATE_PROC_FILE'
     115 |     nvlink_permissions = NV_CREATE_PROC_FILE("permissions",
         |                          ^~~~~~~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/efi.h:19,
                    from ././common/inc/nv-linux.h:220:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia/nvlink_linux.c: At top level:
   nvidia/nvlink_linux.c:313:12: warning: no previous prototype for 'nvlink_core_init' [-Wmissing-prototypes]
     313 | int __init nvlink_core_init(void)
         |            ^~~~~~~~~~~~~~~~
   nvidia/nvlink_linux.c:389:6: warning: no previous prototype for 'nvlink_core_exit' [-Wmissing-prototypes]
     389 | void nvlink_core_exit(void)
         |      ^~~~~~~~~~~~~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/nv-kthread-q-selftest.c:39:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mmzone.h:22,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/gfp.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/umh.h:4,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kmod.h:9,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/module.h:17,
                    from nvidia-uvm/nv-kthread-q-selftest.c:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-kthread-q.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from nvidia-uvm/nv-kthread-q-selftest.c:31:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from ././common/inc/nv-kthread-q.h:27:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_api.h:28,
                    from nvidia-uvm/uvm_gpu_isr.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stat.h:19,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/module.h:13:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nvlink_linux.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
     CC [M]  nvidia-uvm/uvm_procfs.o
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-procfs.h:26,
                    from nvidia/procfs_nvswitch.c:25:
   nvidia/procfs_nvswitch.c: In function 'nvswitch_procfs_device_add':
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/procfs_nvswitch.c:135:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
     135 |     entry = NV_CREATE_PROC_FILE("information", device_dir, device_info,
         |             ^~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/efi.h:19,
                    from ././common/inc/nv-linux.h:220:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   nvidia/procfs_nvswitch.c: In function 'nvswitch_procfs_init':
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/procfs_nvswitch.c:174:28: note: in expansion of macro 'NV_CREATE_PROC_FILE'
     174 |     nvswitch_permissions = NV_CREATE_PROC_FILE("permissions",
         |                            ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_extern_decl.h:27,
                    from nvidia-uvm/uvm_global.h:28,
                    from nvidia-uvm/uvm_procfs.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/procfs_nvswitch.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/i2c_nvswitch.o] Error 1
     CC [M]  nvidia-uvm/uvm_va_space.o
     CC [M]  nvidia-uvm/uvm_va_space_mm.o
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_va_space_mm.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_api.h:28,
                    from nvidia-uvm/uvm_va_space.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   ././nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././nvidia-uvm/uvm_linux.h: At top level:
   ././nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   ././nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32,
                    from nvidia-uvm/uvm_conf_computing.c:25:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   In file included from ././nvidia-uvm/uvm_pmm_gpu.h:55,
                    from ././nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_sec2_test.c:25:
   ././nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   ././nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_ats_sva.o] Error 1
     CC [M]  nvidia-uvm/uvm_gpu_semaphore.o
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_lock.h:28,
                    from nvidia-uvm/uvm_gpu_semaphore.h:28,
                    from nvidia-uvm/uvm_gpu_semaphore.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   cc1: some warnings being treated as errors
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_conf_computing.o] Error 1
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
     CC [M]  nvidia-uvm/uvm_mem.o
   cc1: some warnings being treated as errors
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_sec2_test.o] Error 1
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_maxwell_sec2.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
     CC [M]  nvidia-uvm/uvm_channel.o
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_processors.h:27,
                    from nvidia-uvm/uvm_mem.h:28,
                    from nvidia-uvm/uvm_mem.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
     CC [M]  nvidia-uvm/uvm_rm_mem.o
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_processors.h:27,
                    from nvidia-uvm/uvm_rm_mem.h:28,
                    from nvidia-uvm/uvm_rm_mem.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_lock.h:28,
                    from nvidia-uvm/uvm_gpu_semaphore.h:28,
                    from nvidia-uvm/uvm_channel.h:29,
                    from nvidia-uvm/uvm_channel.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   cc1: some warnings being treated as errors
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_common.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
     CC [M]  nvidia-uvm/uvm_lock.o
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   cc1: some warnings being treated as errors
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_lock.h:28,
                    from nvidia-uvm/uvm_lock.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_linux.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
     CC [M]  nvidia-uvm/uvm_hal.o
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_hal.h:28,
                    from nvidia-uvm/uvm_hal.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                    from nvidia-uvm/uvm_channel.h:29,
                    from nvidia-uvm/uvm_push.h:29,
                    from nvidia-uvm/uvm_hal.h:31:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/nv-kthread-q-selftest.c: At top level:
   nvidia-uvm/nv-kthread-q-selftest.c:84:6: warning: no previous prototype for 'on_nvq_assert' [-Wmissing-prototypes]
      84 | void on_nvq_assert(void)
         |      ^~~~~~~~~~~~~
   In file included from nvidia-uvm/uvm_api.h:31:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from ././nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/nv-kthread-q-selftest.o] Error 1
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
     CC [M]  nvidia-uvm/uvm_range_tree.o
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_hopper_sec2.o] Error 1
     CC [M]  nvidia-uvm/uvm_rb_tree.o
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_range_tree.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_tools.c:25:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm.c: At top level:
   nvidia-uvm/uvm.c:401:14: error: initialization of 'vm_fault_t (*)(struct vm_fault *)' {aka 'unsigned int (*)(struct vm_fault *)'} from incompatible pointer type 'vm_fault_t (*)(struct vm_area_struct *, struct vm_fault *)' {aka 'int (*)(struct vm_area_struct *, struct vm_fault *)'} [-Wincompatible-pointer-types]
     401 |     .fault = uvm_vm_fault_sigbus_entry
         |              ^~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm.c:401:14: note: (near initialization for 'uvm_vm_ops_disabled.fault')
   nvidia-uvm/uvm.c:377:19: note: 'uvm_vm_fault_sigbus_entry' declared here
     377 | static vm_fault_t uvm_vm_fault_sigbus_entry(struct vm_area_struct *vma, struct vm_fault *vmf)
         |                   ^~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm.c:654:21: error: initialization of 'vm_fault_t (*)(struct vm_fault *)' {aka 'unsigned int (*)(struct vm_fault *)'} from incompatible pointer type 'vm_fault_t (*)(struct vm_area_struct *, struct vm_fault *)' {aka 'int (*)(struct vm_area_struct *, struct vm_fault *)'} [-Wincompatible-pointer
   -types]
     654 |     .fault        = uvm_vm_fault_entry,
         |                     ^~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm.c:654:21: note: (near initialization for 'uvm_vm_ops_managed.fault')
   nvidia-uvm/uvm.c:626:19: note: 'uvm_vm_fault_entry' declared here
     626 | static vm_fault_t uvm_vm_fault_entry(struct vm_area_struct *vma, struct vm_fault *vmf)
         |                   ^~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm.c:655:21: error: initialization of 'vm_fault_t (*)(struct vm_fault *)' {aka 'unsigned int (*)(struct vm_fault *)'} from incompatible pointer type 'vm_fault_t (*)(struct vm_area_struct *, struct vm_fault *)' {aka 'int (*)(struct vm_area_struct *, struct vm_fault *)'} [-Wincompatible-pointer-types]
     655 |     .page_mkwrite = uvm_vm_fault_entry,
         |                     ^~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm.c:655:21: note: (near initialization for 'uvm_vm_ops_managed.page_mkwrite')
   nvidia-uvm/uvm.c:626:19: note: 'uvm_vm_fault_entry' declared here
     626 | static vm_fault_t uvm_vm_fault_entry(struct vm_area_struct *vma, struct vm_fault *vmf)
         |                   ^~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm.c:750:21: error: initialization of 'vm_fault_t (*)(struct vm_fault *)' {aka 'unsigned int (*)(struct vm_fault *)'} from incompatible pointer type 'vm_fault_t (*)(struct vm_area_struct *, struct vm_fault *)' {aka 'int (*)(struct vm_area_struct *, struct vm_fault *)'} [-Wincompatible-pointer-types]
     750 |     .fault        = uvm_vm_fault_sigbus_entry,
         |                     ^~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm.c:750:21: note: (near initialization for 'uvm_vm_ops_semaphore_pool.fault')
   nvidia-uvm/uvm.c:377:19: note: 'uvm_vm_fault_sigbus_entry' declared here
     377 | static vm_fault_t uvm_vm_fault_sigbus_entry(struct vm_area_struct *vma, struct vm_fault *vmf)
         |                   ^~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm.o] Error 1
     CC [M]  nvidia-uvm/uvm_range_allocator.o
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_range_tree.h:27,
                    from nvidia-uvm/uvm_range_allocator.h:27,
                    from nvidia-uvm/uvm_range_allocator.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from nvidia-uvm/uvm_api.h:31:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-list-helpers.h:27,
                    from nvidia-uvm/uvm_rb_tree.h:32,
                    from nvidia-uvm/uvm_rb_tree.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_rb_tree.o] Error 1
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
     CC [M]  nvidia-uvm/uvm_va_range.o
   nvidia-uvm/uvm_tools.c: At top level:
   nvidia-uvm/uvm_tools.c:2317:5: warning: no previous prototype for 'uvm_tools_init' [-Wmissing-prototypes]
    2317 | int uvm_tools_init(dev_t uvm_base_dev)
         |     ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   nvidia-uvm/uvm_tools.c:2378:6: warning: no previous prototype for 'uvm_tools_exit' [-Wmissing-prototypes]
    2378 | void uvm_tools_exit(void)
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_va_range.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   cc1: some warnings being treated as errors
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_tools.o] Error 1
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
     CC [M]  nvidia-uvm/uvm_va_policy.o
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_va_policy.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   cc1: some warnings being treated as errors
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_global.o] Error 1
     CC [M]  nvidia-uvm/uvm_va_block.o
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_va_block.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from nvidia-uvm/uvm_api.h:31:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   ././nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././nvidia-uvm/uvm_linux.h: At top level:
   ././nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   ././nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32,
                    from nvidia-uvm/uvm_va_space.h:28,
                    from nvidia-uvm/uvm_va_space_mm.c:26:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from nvidia-uvm/uvm_api.h:31:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   In file included from nvidia-uvm/uvm_api.h:31,
                    from nvidia-uvm/uvm_gpu.c:25:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   cc1: some warnings being treated as errors
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_va_space_mm.o] Error 1
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
     CC [M]  nvidia-uvm/uvm_range_group.o
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_procfs.o] Error 1
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
     CC [M]  nvidia-uvm/uvm_gpu_replayable_faults.o
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_range_tree.h:27,
                    from nvidia-uvm/uvm_range_group.h:28,
                    from nvidia-uvm/uvm_range_group.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from ././nvidia-uvm/uvm_linux.h:37,
                    from ././common/inc/nv_uvm_interface.h:37,
                    from nvidia-uvm/uvm_gpu_replayable_faults.c:25:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   In file included from ././common/inc/nv-procfs.h:26,
                    from nvidia-uvm/uvm_procfs.h:30,
                    from nvidia-uvm/uvm_gpu.c:31:
   nvidia-uvm/uvm_gpu.c: In function 'init_parent_procfs_files':
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia-uvm/uvm_gpu.c:756:43: note: in expansion of macro 'NV_CREATE_PROC_FILE'
     756 |     parent_gpu->procfs.fault_stats_file = NV_CREATE_PROC_FILE("fault_stats",
         |                                           ^~~~~~~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/efi.h:19,
                    from ././common/inc/nv-linux.h:220:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia-uvm/uvm_gpu.c:763:47: note: in expansion of macro 'NV_CREATE_PROC_FILE'
     763 |     parent_gpu->procfs.access_counters_file = NV_CREATE_PROC_FILE("access_counters",
         |                                               ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors
   nvidia-uvm/uvm_gpu.c: In function 'init_procfs_files':
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia-uvm/uvm_gpu.c:834:29: note: in expansion of macro 'NV_CREATE_PROC_FILE'
     834 |     gpu->procfs.info_file = NV_CREATE_PROC_FILE("info", gpu->procfs.dir, gpu_info_entry, gpu);
         |                             ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_va_space.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_gpu_semaphore.c: At top level:
   nvidia-uvm/uvm_gpu_semaphore.c:510:6: warning: no previous prototype for 'tracking_semaphore_uses_mutex' [-Wmissing-prototypes]
     510 | bool tracking_semaphore_uses_mutex(uvm_gpu_tracking_semaphore_t *tracking_semaphore)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     CC [M]  nvidia-uvm/uvm_gpu_non_replayable_faults.o
   cc1: some warnings being treated as errors
   nvidia-uvm/uvm_gpu.c: At top level:
   nvidia-uvm/uvm_gpu.c:1884:12: warning: no previous prototype for 'uvm_gpu_get_by_parent_and_swizz_id_locked' [-Wmissing-prototypes]
    1884 | uvm_gpu_t *uvm_gpu_get_by_parent_and_swizz_id_locked(uvm_parent_gpu_t *parent_gpu, NvU32 swizz_id)
         |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from ././nvidia-uvm/uvm_linux.h:37,
                    from ././common/inc/nv_uvm_interface.h:37,
                    from nvidia-uvm/uvm_gpu_non_replayable_faults.c:23:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_gpu_isr.o] Error 1
   nvidia-uvm/uvm_gpu.c: In function 'init_procfs_peer_cap_files':
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia-uvm/uvm_gpu.c:2228:46: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    2228 |     peer_caps->procfs.peer_file[local_idx] = NV_CREATE_PROC_FILE(gpu_dir_name,
         |                                              ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
     CC [M]  nvidia-uvm/uvm_gpu_access_counters.o
   cc1: some warnings being treated as errors
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_rm_mem.c:25:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_gpu_semaphore.o] Error 1
     CC [M]  nvidia-uvm/uvm_perf_events.o
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from ././nvidia-uvm/uvm_linux.h:37,
                    from ././common/inc/nv_uvm_interface.h:37,
                    from nvidia-uvm/uvm_gpu_access_counters.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_test.h:27,
                    from nvidia-uvm/uvm_perf_events.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_mem.h:30:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_rm_mem.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
     CC [M]  nvidia-uvm/uvm_perf_module.o
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_perf_events.h:27,
                    from nvidia-uvm/uvm_perf_module.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   cc1: some warnings being treated as errors
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_gpu.o] Error 1
   In file included from ././common/inc/nv-procfs.h:26,
                    from nvidia-uvm/uvm_procfs.h:30,
                    from nvidia-uvm/uvm_channel.c:30:
   nvidia-uvm/uvm_channel.c: In function 'manager_create_procfs':
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia-uvm/uvm_channel.c:3575:38: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    3575 |     manager->procfs.pending_pushes = NV_CREATE_PROC_FILE("pending_pushes",
         |                                      ^~~~~~~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/efi.h:19,
                    from ././common/inc/nv-linux.h:220:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_channel.c: In function 'channel_create_procfs':
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia-uvm/uvm_channel.c:3648:28: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    3648 |     channel->procfs.info = NV_CREATE_PROC_FILE("info", channel->procfs.dir, channel_info_entry, channel);
         |                            ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia-uvm/uvm_channel.c:3652:30: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    3652 |     channel->procfs.pushes = NV_CREATE_PROC_FILE("pushes", channel->procfs.dir, channel_pushes_entry, channel);
         |                              ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
     CC [M]  nvidia-uvm/uvm_mmu.o
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_mmu.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_mem.o] Error 1
     CC [M]  nvidia-uvm/uvm_pte_batch.o
   cc1: some warnings being treated as errors
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_range_tree.o] Error 1
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_channel.o] Error 1
     CC [M]  nvidia-uvm/uvm_tlb_batch.o
     CC [M]  nvidia-uvm/uvm_push.o
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_hal_types.h:27,
                    from nvidia-uvm/uvm_pte_batch.h:28,
                    from nvidia-uvm/uvm_pte_batch.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                    from nvidia-uvm/uvm_channel.h:29,
                    from nvidia-uvm/uvm_push.h:29,
                    from nvidia-uvm/uvm_hal.h:31:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_hal_types.h:27,
                    from nvidia-uvm/uvm_tlb_batch.h:28,
                    from nvidia-uvm/uvm_tlb_batch.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_extern_decl.h:27,
                    from nvidia-uvm/uvm_push.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   cc1: some warnings being treated as errors
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_lock.o] Error 1
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
     CC [M]  nvidia-uvm/uvm_pushbuffer.o
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_api.h:28,
                    from nvidia-uvm/uvm_pushbuffer.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   cc1: some warnings being treated as errors
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_hal.o] Error 1
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
     CC [M]  nvidia-uvm/uvm_thread_context.o
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_lock.h:28,
                    from nvidia-uvm/uvm_thread_context.h:28,
                    from nvidia-uvm/uvm_thread_context.c:25:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from nvidia-uvm/uvm_range_allocator.h:28:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from nvidia-uvm/uvm_api.h:31,
                    from nvidia-uvm/uvm_va_range.c:27:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   cc1: some warnings being treated as errors
   In file included from ././common/inc/nv-linux.h:34,
                    from ././nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_range_allocator.o] Error 1
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
     CC [M]  nvidia-uvm/uvm_tracker.o
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_tracker.h:29,
                    from nvidia-uvm/uvm_tracker.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from ././nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sort.h:5,
                    from nvidia-uvm/uvm_gpu_replayable_faults.c:24:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   In file included from ././common/inc/nv-linux.h:34,
                    from ././nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sort.h:5,
                    from nvidia-uvm/uvm_gpu_access_counters.c:23:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   cc1: some warnings being treated as errors
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_va_range.o] Error 1
     CC [M]  nvidia-uvm/uvm_maxwell.o
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_hal.h:28,
                    from nvidia-uvm/uvm_maxwell.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from nvidia-uvm/uvm_api.h:31,
                    from nvidia-uvm/uvm_va_block.c:26:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                    from nvidia-uvm/uvm_channel.h:29,
                    from nvidia-uvm/uvm_push.h:29,
                    from nvidia-uvm/uvm_pte_batch.h:29,
                    from nvidia-uvm/uvm_va_block_types.h:28,
                    from nvidia-uvm/uvm_va_policy.h:31,
                    from nvidia-uvm/uvm_va_policy.c:27:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   cc1: some warnings being treated as errors
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_va_policy.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
     CC [M]  nvidia-uvm/uvm_maxwell_host.o
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_maxwell_host.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././nvidia-uvm/uvm_linux.h: At top level:
   ././nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   ././nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from nvidia-uvm/uvm_api.h:31,
                    from nvidia-uvm/uvm_gpu_non_replayable_faults.c:25:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from nvidia-uvm/uvm_range_group.h:30:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   ././nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././nvidia-uvm/uvm_linux.h: At top level:
   ././nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   ././nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   cc1: some warnings being treated as errors
   ././nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   ././nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././nvidia-uvm/uvm_linux.h: At top level:
   ././nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   ././nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_gpu_non_replayable_faults.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   cc1: some warnings being treated as errors
   In file included from nvidia-uvm/uvm_perf_events.h:31:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
     CC [M]  nvidia-uvm/uvm_maxwell_ce.o
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_va_block.o] Error 1
     CC [M]  nvidia-uvm/uvm_maxwell_mmu.o
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from nvidia-uvm/uvm_perf_events.h:31,
                    from nvidia-uvm/uvm_perf_events.c:25:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32,
                    from nvidia-uvm/uvm_gpu_replayable_faults.c:28:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_hal.h:28,
                    from nvidia-uvm/uvm_maxwell_ce.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_gpu.h:31,
                    from nvidia-uvm/uvm_maxwell_mmu.c:39:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32,
                    from nvidia-uvm/uvm_gpu_access_counters.c:26:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_range_group.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
     CC [M]  nvidia-uvm/uvm_maxwell_fault_buffer.o
   cc1: some warnings being treated as errors
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_perf_module.o] Error 1
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_mmu.c:27:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                    from nvidia-uvm/uvm_channel.h:29,
                    from nvidia-uvm/uvm_push.h:29,
                    from nvidia-uvm/uvm_push.c:26:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
     CC [M]  nvidia-uvm/uvm_maxwell_access_counter_buffer.o
   In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                    from nvidia-uvm/uvm_channel.h:29,
                    from nvidia-uvm/uvm_push.h:29,
                    from nvidia-uvm/uvm_hal.h:31,
                    from nvidia-uvm/uvm_tlb_batch.c:25:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_gpu.h:31,
                    from nvidia-uvm/uvm_maxwell_fault_buffer.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_perf_events.o] Error 1
     CC [M]  nvidia-uvm/uvm_pascal.o
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_gpu.h:31,
                    from nvidia-uvm/uvm_maxwell_access_counter_buffer.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_hal.h:28,
                    from nvidia-uvm/uvm_pascal.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   In file included from nvidia-uvm/uvm_api.h:31:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_push.o] Error 1
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_tlb_batch.o] Error 1
     CC [M]  nvidia-uvm/uvm_pascal_ce.o
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
     CC [M]  nvidia-uvm/uvm_pascal_host.o
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_gpu_replayable_faults.o] Error 1
     CC [M]  nvidia-uvm/uvm_pascal_mmu.o
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_hal.h:28,
                    from nvidia-uvm/uvm_pascal_ce.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   cc1: some warnings being treated as errors
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_pascal_host.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_mmu.c: At top level:
   nvidia-uvm/uvm_mmu.c:2290:11: warning: no previous prototype for 'create_static_vidmem_mapping' [-Wmissing-prototypes]
    2290 | NV_STATUS create_static_vidmem_mapping(uvm_gpu_t *gpu)
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_gpu_access_counters.o] Error 1
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_extern_decl.h:27,
                    from nvidia-uvm/uvm_global.h:28,
                    from nvidia-uvm/uvm_pascal_mmu.c:36:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
     CC [M]  nvidia-uvm/uvm_pascal_fault_buffer.o
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_pascal_fault_buffer.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                    from nvidia-uvm/uvm_channel.h:29,
                    from nvidia-uvm/uvm_push.h:29,
                    from nvidia-uvm/uvm_pte_batch.h:29:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-procfs.h:26,
                    from nvidia-uvm/uvm_procfs.h:30,
                    from nvidia-uvm/uvm_pushbuffer.c:29:
   nvidia-uvm/uvm_pushbuffer.c: In function 'create_procfs':
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia-uvm/uvm_pushbuffer.c:69:36: note: in expansion of macro 'NV_CREATE_PROC_FILE'
      69 |     pushbuffer->procfs.info_file = NV_CREATE_PROC_FILE("pushbuffer",
         |                                    ^~~~~~~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/efi.h:19,
                    from ././common/inc/nv-linux.h:220:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   cc1: some warnings being treated as errors
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_mmu.o] Error 1
     CC [M]  nvidia-uvm/uvm_volta_ce.o
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   cc1: some warnings being treated as errors
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_hal.h:28,
                    from nvidia-uvm/uvm_volta_ce.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   cc1: some warnings being treated as errors
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_thread_context.o] Error 1
     CC [M]  nvidia-uvm/uvm_volta_host.o
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_pushbuffer.o] Error 1
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
     CC [M]  nvidia-uvm/uvm_volta_mmu.o
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_volta_host.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   cc1: some warnings being treated as errors
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_pte_batch.o] Error 1
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_extern_decl.h:27,
                    from nvidia-uvm/uvm_global.h:28,
                    from nvidia-uvm/uvm_volta_mmu.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
     CC [M]  nvidia-uvm/uvm_volta.o
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_hal.h:28,
                    from nvidia-uvm/uvm_volta.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                    from nvidia-uvm/uvm_channel.h:29,
                    from nvidia-uvm/uvm_push.h:29,
                    from nvidia-uvm/uvm_tracker.c:25:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   cc1: some warnings being treated as errors
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_tracker.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
     CC [M]  nvidia-uvm/uvm_volta_fault_buffer.o
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_volta_fault_buffer.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                    from nvidia-uvm/uvm_channel.h:29,
                    from nvidia-uvm/uvm_push.h:29,
                    from nvidia-uvm/uvm_hal.h:31:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   cc1: some warnings being treated as errors
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_maxwell.o] Error 1
     CC [M]  nvidia-uvm/uvm_volta_access_counter_buffer.o
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_volta_access_counter_buffer.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32,
                    from nvidia-uvm/uvm_maxwell_host.c:25:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   cc1: some warnings being treated as errors
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_maxwell_host.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
     CC [M]  nvidia-uvm/uvm_turing.o
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                    from nvidia-uvm/uvm_channel.h:29,
                    from nvidia-uvm/uvm_push.h:29,
                    from nvidia-uvm/uvm_hal.h:31:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_hal.h:28,
                    from nvidia-uvm/uvm_turing.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                    from nvidia-uvm/uvm_channel.h:29,
                    from nvidia-uvm/uvm_push.h:29,
                    from nvidia-uvm/uvm_hal.h:31:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                    from nvidia-uvm/uvm_channel.h:29,
                    from nvidia-uvm/uvm_push.h:29,
                    from nvidia-uvm/uvm_hal.h:31,
                    from nvidia-uvm/uvm_pascal_host.c:26:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   cc1: some warnings being treated as errors
   nvidia-uvm/uvm_maxwell_mmu.c: At top level:
   nvidia-uvm/uvm_maxwell_mmu.c:359:21: warning: no previous prototype for 'uvm_hal_mmu_mode_maxwell' [-Wmissing-prototypes]
     359 | uvm_mmu_mode_hal_t *uvm_hal_mmu_mode_maxwell(NvU32 big_page_size)
         |                     ^~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_maxwell_mmu.c:368:6: warning: no previous prototype for 'uvm_hal_maxwell_mmu_enable_prefetch_faults_unsupported' [-Wmissing-prototypes]
     368 | void uvm_hal_maxwell_mmu_enable_prefetch_faults_unsupported(uvm_parent_gpu_t *parent_gpu)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_pascal.o] Error 1
   nvidia-uvm/uvm_maxwell_mmu.c:373:6: warning: no previous prototype for 'uvm_hal_maxwell_mmu_disable_prefetch_faults_unsupported' [-Wmissing-prototypes]
     373 | void uvm_hal_maxwell_mmu_disable_prefetch_faults_unsupported(uvm_parent_gpu_t *parent_gpu)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   nvidia-uvm/uvm_maxwell_mmu.c:378:23: warning: no previous prototype for 'uvm_hal_maxwell_mmu_engine_id_to_type_unsupported' [-Wmissing-prototypes]
     378 | uvm_mmu_engine_type_t uvm_hal_maxwell_mmu_engine_id_to_type_unsupported(NvU16 mmu_engine_id)
         |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_maxwell_mmu.c:384:7: warning: no previous prototype for 'uvm_hal_maxwell_mmu_client_id_to_utlb_id_unsupported' [-Wmissing-prototypes]
     384 | NvU16 uvm_hal_maxwell_mmu_client_id_to_utlb_id_unsupported(NvU16 client_id)
         |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
     CC [M]  nvidia-uvm/uvm_turing_access_counter_buffer.o
   In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                    from nvidia-uvm/uvm_channel.h:29,
                    from nvidia-uvm/uvm_push.h:29,
                    from nvidia-uvm/uvm_hal.h:31:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   cc1: some warnings being treated as errors
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_turing_access_counter_buffer.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_maxwell_mmu.o] Error 1
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32,
                    from nvidia-uvm/uvm_pascal_fault_buffer.c:25:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
     CC [M]  nvidia-uvm/uvm_turing_fault_buffer.o
   cc1: some warnings being treated as errors
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_maxwell_access_counter_buffer.o] Error 1
     CC [M]  nvidia-uvm/uvm_turing_mmu.o
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_turing_fault_buffer.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   cc1: some warnings being treated as errors
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_maxwell_ce.o] Error 1
     CC [M]  nvidia-uvm/uvm_turing_host.o
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_extern_decl.h:27,
                    from nvidia-uvm/uvm_global.h:28,
                    from nvidia-uvm/uvm_turing_mmu.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_hal.h:28,
                    from nvidia-uvm/uvm_turing_host.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   cc1: some warnings being treated as errors
   nvidia-uvm/uvm_pascal_fault_buffer.c: At top level:
   nvidia-uvm/uvm_pascal_fault_buffer.c:329:6: warning: no previous prototype for 'uvm_hal_pascal_fault_buffer_parse_non_replayable_entry_unsupported' [-Wmissing-prototypes]
     329 | void uvm_hal_pascal_fault_buffer_parse_non_replayable_entry_unsupported(uvm_parent_gpu_t *parent_gpu,
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_maxwell_fault_buffer.o] Error 1
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   cc1: some warnings being treated as errors
     CC [M]  nvidia-uvm/uvm_ampere.o
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_pascal_host.o] Error 1
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_pascal_ce.o] Error 1
     CC [M]  nvidia-uvm/uvm_ampere_ce.o
     CC [M]  nvidia-uvm/uvm_ampere_host.o
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_pascal_fault_buffer.o] Error 1
     CC [M]  nvidia-uvm/uvm_ampere_mmu.o
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_extern_decl.h:27,
                    from nvidia-uvm/uvm_global.h:28,
                    from nvidia-uvm/uvm_ampere.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_hal.h:28,
                    from nvidia-uvm/uvm_ampere_ce.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_hal.h:28,
                    from nvidia-uvm/uvm_ampere_host.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_extern_decl.h:27,
                    from nvidia-uvm/uvm_global.h:28,
                    from nvidia-uvm/uvm_ampere_mmu.c:34:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_volta_mmu.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
     CC [M]  nvidia-uvm/uvm_hopper.o
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32,
                    from nvidia-uvm/uvm_volta_host.c:25:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_extern_decl.h:27,
                    from nvidia-uvm/uvm_global.h:28,
                    from nvidia-uvm/uvm_hopper.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   nvidia-uvm/uvm_pascal_mmu.c: At top level:
   nvidia-uvm/uvm_pascal_mmu.c:364:21: warning: no previous prototype for 'uvm_hal_mmu_mode_pascal' [-Wmissing-prototypes]
     364 | uvm_mmu_mode_hal_t *uvm_hal_mmu_mode_pascal(NvU32 big_page_size)
         |                     ^~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_pascal_mmu.c:376:6: warning: no previous prototype for 'uvm_hal_pascal_mmu_enable_prefetch_faults' [-Wmissing-prototypes]
     376 | void uvm_hal_pascal_mmu_enable_prefetch_faults(uvm_parent_gpu_t *parent_gpu)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_pascal_mmu.c:388:6: warning: no previous prototype for 'uvm_hal_pascal_mmu_disable_prefetch_faults' [-Wmissing-prototypes]
     388 | void uvm_hal_pascal_mmu_disable_prefetch_faults(uvm_parent_gpu_t *parent_gpu)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_pascal_mmu.c:400:7: warning: no previous prototype for 'uvm_hal_pascal_mmu_client_id_to_utlb_id' [-Wmissing-prototypes]
     400 | NvU16 uvm_hal_pascal_mmu_client_id_to_utlb_id(NvU16 client_id)
         |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                    from nvidia-uvm/uvm_channel.h:29,
                    from nvidia-uvm/uvm_push.h:29,
                    from nvidia-uvm/uvm_hal.h:31:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_pascal_mmu.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
     CC [M]  nvidia-uvm/uvm_hopper_fault_buffer.o
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_hal_types.h:27,
                    from nvidia-uvm/uvm_hopper_fault_buffer.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   cc1: some warnings being treated as errors
   cc1: some warnings being treated as errors
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_volta_ce.o] Error 1
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_volta_host.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
     CC [M]  nvidia-uvm/uvm_hopper_ce.o
     CC [M]  nvidia-uvm/uvm_hopper_host.o
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_hal.h:28,
                    from nvidia-uvm/uvm_hopper_host.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_hal.h:28,
                    from nvidia-uvm/uvm_hopper_ce.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                    from nvidia-uvm/uvm_channel.h:29,
                    from nvidia-uvm/uvm_push.h:29,
                    from nvidia-uvm/uvm_hal.h:31:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32,
                    from nvidia-uvm/uvm_volta_fault_buffer.c:25:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   cc1: some warnings being treated as errors
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_volta.o] Error 1
     CC [M]  nvidia-uvm/uvm_hopper_mmu.o
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_extern_decl.h:27,
                    from nvidia-uvm/uvm_global.h:28,
                    from nvidia-uvm/uvm_hopper_mmu.c:35:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_volta_fault_buffer.o] Error 1
     CC [M]  nvidia-uvm/uvm_ada.o
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_extern_decl.h:27,
                    from nvidia-uvm/uvm_global.h:28,
                    from nvidia-uvm/uvm_ada.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32,
                    from nvidia-uvm/uvm_volta_access_counter_buffer.c:25:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_volta_access_counter_buffer.o] Error 1
     CC [M]  nvidia-uvm/uvm_policy.o
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_processors.h:27,
                    from nvidia-uvm/uvm_va_space.h:27,
                    from nvidia-uvm/uvm_policy.c:25:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                    from nvidia-uvm/uvm_channel.h:29,
                    from nvidia-uvm/uvm_push.h:29,
                    from nvidia-uvm/uvm_hal.h:31:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   cc1: some warnings being treated as errors
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_turing.o] Error 1
     CC [M]  nvidia-uvm/uvm_perf_utils.o
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_perf_utils.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                    from nvidia-uvm/uvm_channel.h:29,
                    from nvidia-uvm/uvm_push.h:29,
                    from nvidia-uvm/uvm_hal.h:31:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_ampere.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
     CC [M]  nvidia-uvm/uvm_kvmalloc.o
   In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                    from nvidia-uvm/uvm_channel.h:29,
                    from nvidia-uvm/uvm_push.h:29,
                    from nvidia-uvm/uvm_hal.h:31:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32,
                    from nvidia-uvm/uvm_turing_fault_buffer.c:25:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_ampere_mmu.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
     CC [M]  nvidia-uvm/uvm_pmm_sysmem.o
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_kvmalloc.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                    from nvidia-uvm/uvm_channel.h:29,
                    from nvidia-uvm/uvm_push.h:29,
                    from nvidia-uvm/uvm_hal.h:31:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_gpu.h:31,
                    from nvidia-uvm/uvm_pmm_sysmem.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_turing_mmu.o] Error 1
   nvidia-uvm/uvm_hopper_fault_buffer.c:30:6: warning: no previous prototype for 'uvm_hal_hopper_fault_buffer_get_ve_id' [-Wmissing-prototypes]
      30 | NvU8 uvm_hal_hopper_fault_buffer_get_ve_id(NvU16 mmu_engine_id, uvm_mmu_engine_type_t mmu_engine_type)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors
     CC [M]  nvidia-uvm/uvm_pmm_gpu.o
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_hopper.o] Error 1
   cc1: some warnings being treated as errors
   cc1: some warnings being treated as errors
     CC [M]  nvidia-uvm/uvm_migrate.o
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32,
                    from nvidia-uvm/uvm_turing_access_counter_buffer.c:25:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_turing_fault_buffer.o] Error 1
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_hopper_fault_buffer.o] Error 1
     CC [M]  nvidia-uvm/uvm_populate_pageable.o
   cc1: some warnings being treated as errors
     CC [M]  nvidia-uvm/uvm_migrate_pageable.o
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_pmm_gpu.c:162:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_turing_host.o] Error 1
   cc1: some warnings being treated as errors
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_migrate.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
     CC [M]  nvidia-uvm/uvm_map_external.o
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_ampere_ce.o] Error 1
     CC [M]  nvidia-uvm/uvm_user_channel.o
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_populate_pageable.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_map_external.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_user_channel.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_migrate_pageable.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   cc1: some warnings being treated as errors
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_ampere_host.o] Error 1
     CC [M]  nvidia-uvm/uvm_hmm.o
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_turing_access_counter_buffer.o] Error 1
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_va_block_types.h:27,
                    from nvidia-uvm/uvm_hmm.h:29,
                    from nvidia-uvm/uvm_hmm.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
     CC [M]  nvidia-uvm/uvm_perf_heuristics.o
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_perf_heuristics.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                    from nvidia-uvm/uvm_channel.h:29,
                    from nvidia-uvm/uvm_push.h:29,
                    from nvidia-uvm/uvm_hal.h:31:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                    from nvidia-uvm/uvm_channel.h:29,
                    from nvidia-uvm/uvm_push.h:29,
                    from nvidia-uvm/uvm_hal.h:31:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_hopper_mmu.o] Error 1
   cc1: some warnings being treated as errors
     CC [M]  nvidia-uvm/uvm_perf_thrashing.o
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_hopper_ce.o] Error 1
     CC [M]  nvidia-uvm/uvm_perf_prefetch.o
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_api.h:28,
                    from nvidia-uvm/uvm_perf_thrashing.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_perf_prefetch.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_hopper_host.o] Error 1
     CC [M]  nvidia-uvm/uvm_ats.o
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_processors.h:27,
                    from nvidia-uvm/uvm_va_space.h:27,
                    from nvidia-uvm/uvm_ats.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_ada.o] Error 1
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
     CC [M]  nvidia-uvm/uvm_ats_ibm.o
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_api.h:28,
                    from nvidia-uvm/uvm_ats_ibm.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32,
                    from nvidia-uvm/uvm_va_space.h:28:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   cc1: some warnings being treated as errors
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_policy.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
     CC [M]  nvidia-uvm/uvm_ats_faults.o
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_api.h:28,
                    from nvidia-uvm/uvm_ats_faults.c:23:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32,
                    from nvidia-uvm/uvm_kvmalloc.c:26:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   nvidia-uvm/uvm_linux.h: At top level:
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   cc1: some warnings being treated as errors
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_perf_utils.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
     CC [M]  nvidia-uvm/uvm_test.o
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_api.h:28,
                    from nvidia-uvm/uvm_test.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   cc1: some warnings being treated as errors
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_kvmalloc.o] Error 1
     CC [M]  nvidia-uvm/uvm_test_rng.o
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   In file included from nvidia-uvm/uvm_map_external.c:27:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_test_rng.h:28,
                    from nvidia-uvm/uvm_test_rng.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32,
                    from nvidia-uvm/uvm_migrate.c:27:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from nvidia-uvm/uvm_populate_pageable.c:27:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from nvidia-uvm/uvm_api.h:31,
                    from nvidia-uvm/uvm_pmm_gpu.c:164:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_migrate_pageable.c:26:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_map_external.c: In function 'uvm_pte_buffer_init':
   nvidia-uvm/uvm_map_external.c:104:42: warning: implicit conversion from 'UvmGpuCachingType' to 'UvmRmGpuCachingType' [-Wenum-conversion]
     104 |     pte_buffer->mapping_info.cachingType = map_rm_params->caching_type;
         |                                          ^
   nvidia-uvm/uvm_map_external.c:105:42: warning: implicit conversion from 'UvmGpuMappingType' to 'UvmRmGpuMappingType' [-Wenum-conversion]
     105 |     pte_buffer->mapping_info.mappingType = map_rm_params->mapping_type;
         |                                          ^
   nvidia-uvm/uvm_map_external.c:106:41: warning: implicit conversion from 'UvmGpuFormatType' to 'UvmRmGpuFormatType' [-Wenum-conversion]
     106 |     pte_buffer->mapping_info.formatType = map_rm_params->format_type;
         |                                         ^
   nvidia-uvm/uvm_map_external.c:107:42: warning: implicit conversion from 'UvmGpuFormatElementBits' to 'UvmRmGpuFormatElementBits' [-Wenum-conversion]
     107 |     pte_buffer->mapping_info.elementBits = map_rm_params->element_bits;
         |                                          ^
   nvidia-uvm/uvm_map_external.c:108:46: warning: implicit conversion from 'UvmGpuCompressionType' to 'UvmRmGpuCompressionType' [-Wenum-conversion]
     108 |     pte_buffer->mapping_info.compressionType = map_rm_params->compression_type;
         |                                              ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                    from nvidia-uvm/uvm_channel.h:29,
                    from nvidia-uvm/uvm_push.h:29,
                    from nvidia-uvm/uvm_pte_batch.h:29,
                    from nvidia-uvm/uvm_va_block_types.h:28:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   nvidia-uvm/uvm_pmm_sysmem.c: In function 'uvm_pmm_sysmem_mappings_split_gpu_mappings':
   nvidia-uvm/uvm_pmm_sysmem.c:294:13: error: implicit declaration of function 'NV_RADIX_TREE_REPLACE_SLOT'; did you mean 'NV_RADIX_TREE_REPLACE_SLOT_PRESENT'? [-Wimplicit-function-declaration]
     294 |             NV_RADIX_TREE_REPLACE_SLOT(&sysmem_mappings->reverse_map_tree, slot, new_reverse_maps[subregion - 1]);
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~
         |             NV_RADIX_TREE_REPLACE_SLOT_PRESENT
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32,
                    from nvidia-uvm/uvm_va_space.h:28,
                    from nvidia-uvm/uvm_user_channel.c:26:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_migrate.o] Error 1
     CC [M]  nvidia-uvm/uvm_range_tree_test.o
   cc1: some warnings being treated as errors
   nvidia-uvm/uvm_populate_pageable.c: At top level:
   nvidia-uvm/uvm_populate_pageable.c:56:11: warning: no previous prototype for 'uvm_handle_fault' [-Wmissing-prototypes]
      56 | NV_STATUS uvm_handle_fault(struct vm_area_struct *vma, unsigned long start, unsigned long vma_num_pages, bool write)
         |           ^~~~~~~~~~~~~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_range_tree_test.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_map_external.o] Error 1
     CC [M]  nvidia-uvm/uvm_range_allocator_test.o
   cc1: some warnings being treated as errors
   In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                    from nvidia-uvm/uvm_channel.h:29,
                    from nvidia-uvm/uvm_push.h:29,
                    from nvidia-uvm/uvm_pte_batch.h:29,
                    from nvidia-uvm/uvm_va_block_types.h:28,
                    from nvidia-uvm/uvm_perf_thrashing.h:31,
                    from nvidia-uvm/uvm_perf_heuristics.c:26:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_hmm.o] Error 1
   cc1: some warnings being treated as errors
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
     CC [M]  nvidia-uvm/uvm_gpu_semaphore_test.o
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_populate_pageable.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
     CC [M]  nvidia-uvm/uvm_mem_test.o
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_range_allocator_test.c:25:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   cc1: some warnings being treated as errors
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   nvidia-uvm/uvm_migrate_pageable.c: At top level:
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_migrate_pageable.c:510:6: warning: no previous prototype for 'migrate_vma_cleanup_pages' [-Wmissing-prototypes]
     510 | void migrate_vma_cleanup_pages(unsigned long *dst, unsigned long npages)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_extern_decl.h:27,
                    from nvidia-uvm/uvm_global.h:28,
                    from nvidia-uvm/uvm_gpu_semaphore_test.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   nvidia-uvm/uvm_migrate_pageable.c:556:6: warning: no previous prototype for 'uvm_migrate_vma_alloc_and_copy_helper' [-Wmissing-prototypes]
     556 | void uvm_migrate_vma_alloc_and_copy_helper(struct vm_area_struct *vma,
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_migrate_pageable.c:645:6: warning: no previous prototype for 'uvm_migrate_vma_finalize_and_map_helper' [-Wmissing-prototypes]
     645 | void uvm_migrate_vma_finalize_and_map_helper(struct vm_area_struct *vma,
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_pmm_sysmem.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
     CC [M]  nvidia-uvm/uvm_rm_mem_test.o
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_hal.h:28,
                    from nvidia-uvm/uvm_mem_test.c:23:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_processors.h:27,
                    from nvidia-uvm/uvm_rm_mem.h:28,
                    from nvidia-uvm/uvm_rm_mem_test.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   cc1: some warnings being treated as errors
   In file included from nvidia-uvm/uvm_perf_events.h:31,
                    from nvidia-uvm/uvm_perf_prefetch.c:25:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_migrate_pageable.o] Error 1
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
     CC [M]  nvidia-uvm/uvm_page_tree_test.o
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   cc1: some warnings being treated as errors
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_perf_heuristics.o] Error 1
     CC [M]  nvidia-uvm/uvm_tracker_test.o
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_test.h:27,
                    from nvidia-uvm/uvm_page_tree_test.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_lock.h:28,
                    from nvidia-uvm/uvm_gpu_semaphore.h:28,
                    from nvidia-uvm/uvm_channel.h:29,
                    from nvidia-uvm/uvm_tracker_test.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_user_channel.o] Error 1
     CC [M]  nvidia-uvm/uvm_push_test.o
   In file included from nvidia-uvm/uvm_api.h:31:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   cc1: some warnings being treated as errors
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32,
                    from nvidia-uvm/uvm_va_space.h:28:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_pmm_gpu.o] Error 1
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_extern_decl.h:27,
                    from nvidia-uvm/uvm_global.h:28,
                    from nvidia-uvm/uvm_push_test.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
     CC [M]  nvidia-uvm/uvm_channel_test.o
   cc1: some warnings being treated as errors
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_extern_decl.h:27,
                    from nvidia-uvm/uvm_global.h:28,
                    from nvidia-uvm/uvm_channel_test.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_perf_prefetch.o] Error 1
     CC [M]  nvidia-uvm/uvm_ce_test.o
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_lock.h:28,
                    from nvidia-uvm/uvm_gpu_semaphore.h:28,
                    from nvidia-uvm/uvm_channel.h:29,
                    from nvidia-uvm/uvm_ce_test.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-procfs.h:26,
                    from nvidia-uvm/uvm_procfs.h:30,
                    from nvidia-uvm/uvm_perf_thrashing.c:34:
   nvidia-uvm/uvm_perf_thrashing.c: In function 'cpu_thrashing_stats_init':
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia-uvm/uvm_perf_thrashing.c:450:45: note: in expansion of macro 'NV_CREATE_PROC_FILE'
     450 |         g_cpu_thrashing_stats.procfs_file = NV_CREATE_PROC_FILE(THRASHING_STATS_FILE_NAME,
         |                                             ^~~~~~~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/efi.h:19,
                    from ././common/inc/nv-linux.h:220:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_perf_thrashing.c: In function 'gpu_thrashing_stats_create':
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia-uvm/uvm_perf_thrashing.c:505:34: note: in expansion of macro 'NV_CREATE_PROC_FILE'
     505 |     gpu_thrashing->procfs_file = NV_CREATE_PROC_FILE(THRASHING_STATS_FILE_NAME,
         |                                  ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   cc1: some warnings being treated as errors
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_ats.o] Error 1
     CC [M]  nvidia-uvm/uvm_host_test.o
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_extern_decl.h:27,
                    from nvidia-uvm/uvm_global.h:28,
                    from nvidia-uvm/uvm_host_test.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   cc1: some warnings being treated as errors
   In file included from nvidia-uvm/uvm_api.h:31:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_perf_thrashing.o] Error 1
     CC [M]  nvidia-uvm/uvm_lock_test.o
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_test.h:27,
                    from nvidia-uvm/uvm_lock_test.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_ats_ibm.o] Error 1
     CC [M]  nvidia-uvm/uvm_perf_utils_test.o
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_perf_utils.h:27,
                    from nvidia-uvm/uvm_perf_utils_test.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kasan-checks.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/asm-generic/rwonce.h:26,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/generated/asm/rwonce.h:1,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/compiler.h:344,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/atomic.h:5,
                    from nvidia-uvm/uvm_push_test.c:24:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from nvidia-uvm/uvm_api.h:31:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   In file included from nvidia-uvm/uvm_api.h:31:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   cc1: some warnings being treated as errors
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_ats_faults.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
     CC [M]  nvidia-uvm/uvm_kvmalloc_test.o
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_test_rng.o] Error 1
     CC [M]  nvidia-uvm/uvm_pmm_test.o
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_kvmalloc_test.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_pmm_test.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   cc1: some warnings being treated as errors
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_test.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
     CC [M]  nvidia-uvm/uvm_pmm_sysmem_test.o
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_test.h:27,
                    from nvidia-uvm/uvm_pmm_sysmem_test.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32,
                    from nvidia-uvm/uvm_va_space.h:28,
                    from nvidia-uvm/uvm_rm_mem_test.c:27:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   cc1: some warnings being treated as errors
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_range_tree_test.o] Error 1
     CC [M]  nvidia-uvm/uvm_perf_events_test.o
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   In file included from nvidia-uvm/uvm_range_allocator.h:28,
                    from nvidia-uvm/uvm_range_allocator_test.c:26:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_perf_events.h:27,
                    from nvidia-uvm/uvm_perf_events_test.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                    from nvidia-uvm/uvm_channel.h:29,
                    from nvidia-uvm/uvm_push.h:29,
                    from nvidia-uvm/uvm_hal.h:31:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   cc1: some warnings being treated as errors
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_range_allocator_test.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
     CC [M]  nvidia-uvm/uvm_perf_module_test.o
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   cc1: some warnings being treated as errors
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_gpu_semaphore_test.o] Error 1
     CC [M]  nvidia-uvm/uvm_get_rm_ptes_test.o
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_kvmalloc.h:27,
                    from nvidia-uvm/uvm_perf_module_test.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_rm_mem_test.o] Error 1
     CC [M]  nvidia-uvm/uvm_fault_buffer_flush_test.o
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_page_tree_test.c:26:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_fault_buffer_flush_test.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_test.h:27,
                    from nvidia-uvm/uvm_get_rm_ptes_test.c:23:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   nvidia-uvm/uvm_channel_test.c: At top level:
   nvidia-uvm/uvm_channel_test.c:687:11: warning: no previous prototype for 'test_conf_computing_channel_selection' [-Wmissing-prototypes]
     687 | NV_STATUS test_conf_computing_channel_selection(uvm_va_space_t *va_space)
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_channel_test.c:749:11: warning: no previous prototype for 'test_write_ctrl_gpfifo_noop' [-Wmissing-prototypes]
     749 | NV_STATUS test_write_ctrl_gpfifo_noop(uvm_va_space_t *va_space)
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_channel_test.c:788:11: warning: no previous prototype for 'test_write_ctrl_gpfifo_and_pushes' [-Wmissing-prototypes]
     788 | NV_STATUS test_write_ctrl_gpfifo_and_pushes(uvm_va_space_t *va_space)
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_channel_test.c:836:11: warning: no previous prototype for 'test_write_ctrl_gpfifo_tight' [-Wmissing-prototypes]
     836 | NV_STATUS test_write_ctrl_gpfifo_tight(uvm_va_space_t *va_space)
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_mem_test.o] Error 1
     CC [M]  nvidia-uvm/uvm_peer_identity_mappings_test.o
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   cc1: some warnings being treated as errors
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_test.h:27,
                    from nvidia-uvm/uvm_peer_identity_mappings_test.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_channel_test.o] Error 1
     CC [M]  nvidia-uvm/uvm_va_block_test.o
   cc1: some warnings being treated as errors
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_va_block_test.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_push_test.o] Error 1
     CC [M]  nvidia-uvm/uvm_range_group_tree_test.o
   cc1: some warnings being treated as errors
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_tracker_test.o] Error 1
     CC [M]  nvidia-uvm/uvm_thread_context_test.o
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_test.h:27,
                    from nvidia-uvm/uvm_range_group_tree_test.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from nvidia-uvm/uvm_lock_test.c:25:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_page_tree_test.c: At top level:
   nvidia-uvm/uvm_page_tree_test.c:1514:8: warning: no previous prototype for 'get_page_sizes' [-Wmissing-prototypes]
    1514 | size_t get_page_sizes(uvm_gpu_t *gpu, NvU32 *page_sizes)
         |        ^~~~~~~~~~~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_api.h:28,
                    from nvidia-uvm/uvm_thread_context_test.c:23:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   cc1: some warnings being treated as errors
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_ce_test.o] Error 1
     CC [M]  nvidia-uvm/uvm_rb_tree_test.o
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-time.h:27,
                    from nvidia-uvm/uvm_linux.h:37,
                    from nvidia-uvm/uvm_common.h:43,
                    from nvidia-uvm/uvm_rb_tree_test.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   cc1: some warnings being treated as errors
   cc1: some warnings being treated as errors
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_lock_test.o] Error 1
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_page_tree_test.o] Error 1
     CC [M]  nvidia-modeset/nvidia-modeset-linux.o
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_host_test.o] Error 1
     CC [M]  nvidia-modeset/nv-kthread-q.o
     CC [M]  nvidia-drm/nvidia-drm.o
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/conftest.h:28,
                    from nvidia-drm/nvidia-drm-conftest.h:26,
                    from nvidia-drm/nvidia-drm.h:26,
                    from nvidia-drm/nvidia-drm.c:23:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm.o] Error 1
     CC [M]  nvidia-drm/nvidia-drm-drv.o
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   In file included from ././common/inc/conftest.h:28,
                    from nvidia-drm/nvidia-drm-conftest.h:26,
                    from nvidia-drm/nvidia-drm-drv.c:23:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-drv.o] Error 1
     CC [M]  nvidia-drm/nvidia-drm-utils.o
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from ././common/inc/conftest.h:28,
                    from nvidia-drm/nvidia-drm-conftest.h:26,
                    from nvidia-drm/nvidia-drm-utils.c:23:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-utils.o] Error 1
     CC [M]  nvidia-drm/nvidia-drm-crtc.o
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from nvidia-drm/nvidia-drm-conftest.h:26,
                    from nvidia-drm/nvidia-drm-crtc.c:23:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-crtc.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
     CC [M]  nvidia-drm/nvidia-drm-encoder.o
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from nvidia-drm/nvidia-drm-conftest.h:26,
                    from nvidia-drm/nvidia-drm-encoder.c:23:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-encoder.o] Error 1
     CC [M]  nvidia-drm/nvidia-drm-connector.o
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from nvidia-drm/nvidia-drm-conftest.h:26,
                    from nvidia-drm/nvidia-drm-connector.c:23:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-connector.o] Error 1
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
     CC [M]  nvidia-drm/nvidia-drm-gem.o
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                    from ././common/inc/nv-time.h:29:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from nvidia-uvm/uvm_perf_events.h:31,
                    from nvidia-uvm/uvm_perf_module.h:29,
                    from nvidia-uvm/uvm_va_block.h:32,
                    from nvidia-uvm/uvm_perf_utils_test.c:25:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                    from ././common/inc/nv-time.h:30:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-kthread-q.h:33,
                    from nvidia-modeset/nv-kthread-q.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from nvidia-drm/nvidia-drm-conftest.h:26,
                    from nvidia-drm/nvidia-drm-gem.c:23:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-gem.o] Error 1
     CC [M]  nvidia-drm/nvidia-drm-fb.o
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from nvidia-drm/nvidia-drm-conftest.h:26,
                    from nvidia-drm/nvidia-drm-fb.c:23:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-fb.o] Error 1
     CC [M]  nvidia-drm/nvidia-drm-modeset.o
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/conftest.h:28,
                    from nvidia-drm/nvidia-drm-conftest.h:26,
                    from nvidia-drm/nvidia-drm-modeset.c:23:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-modeset.o] Error 1
     CC [M]  nvidia-drm/nvidia-drm-fence.o
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/conftest.h:28,
                    from nvidia-drm/nvidia-drm-conftest.h:26,
                    from nvidia-drm/nvidia-drm-fence.c:23:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-fence.o] Error 1
     CC [M]  nvidia-drm/nvidia-drm-linux.o
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   cc1: some warnings being treated as errors
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_perf_utils_test.o] Error 1
     CC [M]  nvidia-drm/nvidia-drm-helper.o
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   In file included from ././common/inc/conftest.h:28,
                    from nvidia-drm/nvidia-drm-conftest.h:26,
                    from nvidia-drm/nvidia-drm-helper.h:26,
                    from nvidia-drm/nvidia-drm-helper.c:30:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-helper.o] Error 1
   cc1: some warnings being treated as errors
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
     CC [M]  nvidia-drm/nv-pci-table.o
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_kvmalloc_test.o] Error 1
     CC [M]  nvidia-drm/nvidia-drm-gem-nvkms-memory.o
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia-uvm/uvm_linux.h:40:
   ././common/inc/nv-mm.h: At top level:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from ././common/inc/nv-time.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from nvidia-drm/nvidia-drm-conftest.h:26,
                    from nvidia-drm/nvidia-drm-gem-nvkms-memory.c:23:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-gem-nvkms-memory.o] Error 1
     CC [M]  nvidia-drm/nvidia-drm-gem-user-memory.o
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_pmm_test.c:25:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from nvidia-modeset/nvidia-modeset-os-interface.h:40,
                    from nvidia-modeset/nvidia-modeset-linux.c:47:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   In file included from ././common/inc/conftest.h:28,
                    from nvidia-drm/nvidia-drm-conftest.h:26,
                    from nvidia-drm/nvidia-drm-gem-user-memory.c:23:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-gem-user-memory.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
     CC [M]  nvidia-drm/nvidia-drm-gem-dma-buf.o
   In file included from nvidia-modeset/nvidia-modeset-linux.c:54:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stat.h:19,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/module.h:13,
                    from nvidia-modeset/nvidia-modeset-linux.c:24:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mmzone.h:22,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/gfp.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/umh.h:4,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kmod.h:9,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/module.h:17:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/conftest.h:28,
                    from nvidia-drm/nvidia-drm-conftest.h:26,
                    from nvidia-drm/nvidia-drm-gem-dma-buf.c:23:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-gem-dma-buf.o] Error 1
     CC [M]  nvidia-drm/nvidia-drm-format.o
   nvidia-modeset/nv-kthread-q.c: In function 'thread_create_on_node':
   nvidia-modeset/nv-kthread-q.c:179:5: warning: 'static' is not at beginning of declaration [-Wold-style-declaration]
     179 |     const static unsigned attempts = 3;
         |     ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from nvidia-drm/nvidia-drm-conftest.h:26,
                    from nvidia-drm/nvidia-drm-format.c:23:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-modeset/nv-kthread-q.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-format.o] Error 1
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32,
                    from nvidia-uvm/uvm_pmm_sysmem_test.c:27:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
     CC [M]  nvidia-peermem/nvidia-peermem.o
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_pmm_test.c: At top level:
   nvidia-uvm/uvm_pmm_test.c:909:11: warning: no previous prototype for '__test_pmm_async_alloc_type' [-Wmissing-prototypes]
     909 | NV_STATUS __test_pmm_async_alloc_type(uvm_va_space_t *va_space,
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   cc1: some warnings being treated as errors
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_pmm_test.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   nvidia-modeset/nvidia-modeset-linux.c: In function 'nvkms_get_usec':
   nvidia-modeset/nvidia-modeset-linux.c:360:25: error: passing argument 1 of 'ktime_get_real_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     360 |     ktime_get_real_ts64(&ts);
         |                         ^~~
         |                         |
         |                         struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:44:52: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      44 | extern void ktime_get_real_ts64(struct timespec64 *tv);
         |                                 ~~~~~~~~~~~~~~~~~~~^~
   nvidia-modeset/nvidia-modeset-linux.c: At top level:
   nvidia-modeset/nvidia-modeset-linux.c:1080:24: warning: no previous prototype for 'nvkms_open_common' [-Wmissing-prototypes]
    1080 | struct nvkms_per_open *nvkms_open_common(enum NvKmsClientType type,
         |                        ^~~~~~~~~~~~~~~~~
   nvidia-modeset/nvidia-modeset-linux.c:1132:6: warning: no previous prototype for 'nvkms_close_pm_locked' [-Wmissing-prototypes]
    1132 | void nvkms_close_pm_locked(struct nvkms_per_open *popen)
         |      ^~~~~~~~~~~~~~~~~~~~~
   nvidia-modeset/nvidia-modeset-linux.c:1195:5: warning: no previous prototype for 'nvkms_ioctl_common' [-Wmissing-prototypes]
    1195 | int nvkms_ioctl_common
         |     ^~~~~~~~~~~~~~~~~~
   nvidia-modeset/nvidia-modeset-linux.c: In function 'nvkms_add_proc_file':
   nvidia-modeset/nvidia-modeset-linux.c:1359:37: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
    1359 |                                     &nv_procfs_nvkms_proc_fops, file->func);
         |                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~
         |                                     |
         |                                     const nv_proc_ops_t * {aka const struct file_operations *}
   In file included from ././common/inc/nv-procfs-utils.h:29,
                    from ././common/inc/nv-procfs.h:26,
                    from nvidia-modeset/nvidia-modeset-linux.c:52:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-modeset/nvidia-modeset-linux.c: In function 'nvkms_config_file_open':
   nvidia-modeset/nvidia-modeset-linux.c:1465:41: error: passing argument 2 of 'kernel_read' makes pointer from integer without a cast [-Wint-conversion]
    1465 |         ssize_t ret = kernel_read(file, read_size,
         |                                         ^~~~~~~~~
         |                                         |
         |                                         size_t {aka long unsigned int}
   nvidia-uvm/uvm_pmm_sysmem_test.c: At top level:
   nvidia-uvm/uvm_pmm_sysmem_test.c:1070:11: warning: no previous prototype for 'do_test_cpu_chunk_free' [-Wmissing-prototypes]
    1070 | NV_STATUS do_test_cpu_chunk_free(uvm_cpu_chunk_t *chunk, uvm_va_space_t *va_space, uvm_processor_mask_t *test_gpus)
         |           ^~~~~~~~~~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/compat.h:17,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/ia32.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/elf.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/elf.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/module.h:19:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:3187:43: note: expected 'void *' but argument is of type 'size_t' {aka 'long unsigned int'}
    3187 | extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
         |                                           ^~~~~~
   nvidia-modeset/nvidia-modeset-linux.c:1466:41: error: passing argument 3 of 'kernel_read' makes integer from pointer without a cast [-Wint-conversion]
    1466 |                                   *buff + read_size,
         |                                   ~~~~~~^~~~~~~~~~~
         |                                         |
         |                                         char *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:3187:51: note: expected 'size_t' {aka 'long unsigned int'} but argument is of type 'char *'
    3187 | extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
         |                                                   ^~~~~~
   nvidia-modeset/nvidia-modeset-linux.c:1467:45: error: passing argument 4 of 'kernel_read' makes pointer from integer without a cast [-Wint-conversion]
    1467 |                                   file_size - read_size);
         |                                   ~~~~~~~~~~^~~~~~~~~~~
         |                                             |
         |                                             size_t {aka long unsigned int}
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:3187:59: note: expected 'loff_t *' {aka 'long long int *'} but argument is of type 'size_t' {aka 'long unsigned int'}
    3187 | extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
         |                                                           ^~~~~~~~
   nvidia-uvm/uvm_pmm_sysmem_test.c:1166:11: warning: no previous prototype for 'test_cpu_chunk_free' [-Wmissing-prototypes]
    1166 | NV_STATUS test_cpu_chunk_free(uvm_va_space_t *va_space, uvm_processor_mask_t *test_gpus)
         |           ^~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from nvidia-uvm/uvm_perf_events.h:31,
                    from nvidia-uvm/uvm_perf_module.h:29,
                    from nvidia-uvm/uvm_perf_module_test.c:25:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-modeset/nvidia-modeset-linux.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   cc1: some warnings being treated as errors
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_pmm_sysmem_test.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32,
                    from nvidia-uvm/uvm_fault_buffer_flush_test.c:26:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   In file included from nvidia-uvm/uvm_perf_events.h:31:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   cc1: some warnings being treated as errors
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_perf_module_test.o] Error 1
   In file included from nvidia-uvm/uvm_perf_events.h:31,
                    from nvidia-uvm/uvm_perf_module.h:29,
                    from nvidia-uvm/uvm_va_block.h:32,
                    from nvidia-uvm/uvm_va_block_test.c:28:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   In file included from ././common/inc/conftest.h:28,
                    from nvidia-drm/nvidia-drm-conftest.h:26,
                    from nvidia-drm/nvidia-drm-os-interface.h:26,
                    from nvidia-drm/nvidia-drm-linux.c:27:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-linux.o] Error 1
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32,
                    from nvidia-uvm/uvm_va_space.h:28,
                    from nvidia-uvm/uvm_range_group_tree_test.c:26:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32,
                    from nvidia-uvm/uvm_get_rm_ptes_test.c:25:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_fault_buffer_flush_test.o] Error 1
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_perf_events_test.o] Error 1
   In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                    from nvidia-uvm/uvm_gpu.h:37,
                    from nvidia-uvm/uvm_global.h:32,
                    from nvidia-uvm/uvm_va_space.h:28,
                    from nvidia-uvm/uvm_peer_identity_mappings_test.c:25:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   cc1: some warnings being treated as errors
   In file included from nvidia-uvm/uvm_api.h:31:
   nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
   nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
    1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
         |           ^~~~~~~~~~~~~~~~~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_va_block_test.o] Error 1
   nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
   nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     287 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia-uvm/uvm_linux.h: At top level:
   nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
     449 | #error "Unknown number of arguments"
         |  ^~~~~
   nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
     481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
     485 | #error "Unknown number of arguments"
         |  ^~~~~
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_rb_tree_test.o] Error 1
   cc1: some warnings being treated as errors
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_range_group_tree_test.o] Error 1
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_get_rm_ptes_test.o] Error 1
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_peer_identity_mappings_test.o] Error 1
   cc1: some warnings being treated as errors
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_thread_context_test.o] Error 1
   In file included from ././common/inc/conftest.h:28,
                    from nvidia-peermem/nvidia-peermem.c:39:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-peermem/nvidia-peermem.o] Error 1
   make[4]: Target './' not remade because of errors.
   make[3]: *** [/usr/lib/modules/6.14.6-arch1-1/build/Makefile:1997: .] Error 2
   make[3]: Target 'modules' not remade because of errors.
   make[2]: *** [/usr/lib/modules/6.14.6-arch1-1/build/Makefile:251: __sub-make] Error 2
   make[2]: Target 'modules' not remade because of errors.
   make[2]: Leaving directory '/tmp/selfgz13746/NVIDIA-Linux-x86_64-535.161.07-grid/kernel'
   make[1]: *** [Makefile:251: __sub-make] Error 2
   make[1]: Target 'modules' not remade because of errors.
   make[1]: Leaving directory '/usr/lib/modules/6.14.6-arch1-1/build'
   make: *** [Makefile:82: modules] Error 2
-> Error.
ERROR: An error occurred while performing the step: "Building kernel modules". See /var/log/nvidia-installer.log for details.
-> The command `cd ./kernel; /usr/bin/make -k -j16  NV_EXCLUDE_KERNEL_MODULES="" SYSSRC="/lib/modules/6.14.6-arch1-1/build" SYSOUT="/lib/modules/6.14.6-arch1-1/build" ` failed with the following output:
Ā make[1]: Entering directory '/usr/lib/modules/6.14.6-arch1-1/build'
make[2]: Entering directory '/tmp/selfgz13746/NVIDIA-Linux-x86_64-535.161.07-grid/kernel'
warning: the compiler differs from the one used to build the kernel
  The kernel was built by: gcc (GCC) 15.1.1 20250425
  You are using:           cc (GCC) 15.1.1 20250425
  SYMLINK nvidia/nv-kernel.o
  SYMLINK nvidia-modeset/nv-modeset-kernel.o
 CONFTEST: hash__remap_4k_pfn
 CONFTEST: set_pages_uc
 CONFTEST: list_is_first
 CONFTEST: set_memory_uc
 CONFTEST: set_memory_array_uc
 CONFTEST: set_pages_array_uc
 CONFTEST: ioremap_cache
 CONFTEST: ioremap_wc
 CONFTEST: ioremap_driver_hardened
 CONFTEST: ioremap_driver_hardened_wc
 CONFTEST: ioremap_cache_shared
 CONFTEST: pci_get_domain_bus_and_slot
 CONFTEST: get_num_physpages
 CONFTEST: pde_data
 CONFTEST: xen_ioemu_inject_msi
 CONFTEST: phys_to_dma
 CONFTEST: get_dma_ops
 CONFTEST: dma_attr_macros
 CONFTEST: dma_map_page_attrs
 CONFTEST: write_cr4
 CONFTEST: of_find_node_by_phandle
 CONFTEST: of_node_to_nid
 CONFTEST: pnv_pci_get_npu_dev
 CONFTEST: of_get_ibm_chip_id
 CONFTEST: pci_bus_address
 CONFTEST: pci_stop_and_remove_bus_device
 CONFTEST: pci_rebar_get_possible_sizes
 CONFTEST: wait_for_random_bytes
 CONFTEST: register_cpu_notifier
 CONFTEST: cpuhp_setup_state
 CONFTEST: dma_map_resource
 CONFTEST: get_backlight_device_by_name
 CONFTEST: timer_setup
 CONFTEST: pci_enable_msix_range
 CONFTEST: kernel_read_has_pointer_pos_arg
 CONFTEST: kernel_write_has_pointer_pos_arg
 CONFTEST: dma_direct_map_resource
 CONFTEST: tegra_get_platform
 CONFTEST: tegra_bpmp_send_receive
 CONFTEST: flush_cache_all
 CONFTEST: vmf_insert_pfn
 CONFTEST: jiffies_to_timespec
 CONFTEST: ktime_get_raw_ts64
 CONFTEST: ktime_get_real_ts64
 CONFTEST: full_name_hash
 CONFTEST: pci_enable_atomic_ops_to_root
 CONFTEST: vga_tryget
 CONFTEST: cc_platform_has
 CONFTEST: seq_read_iter
 CONFTEST: unsafe_follow_pfn
 CONFTEST: drm_gem_object_get
 CONFTEST: drm_gem_object_put_unlocked
 CONFTEST: add_memory_driver_managed
 CONFTEST: device_property_read_u64
 CONFTEST: devm_of_platform_populate
 CONFTEST: of_dma_configure
 CONFTEST: of_property_count_elems_of_size
 CONFTEST: of_property_read_variable_u8_array
 CONFTEST: of_property_read_variable_u32_array
 CONFTEST: i2c_new_client_device
 CONFTEST: i2c_unregister_device
 CONFTEST: of_get_named_gpio
 CONFTEST: devm_gpio_request_one
 CONFTEST: gpio_direction_input
 CONFTEST: gpio_direction_output
 CONFTEST: gpio_get_value
 CONFTEST: gpio_set_value
 CONFTEST: gpio_to_irq
 CONFTEST: icc_get
 CONFTEST: icc_put
 CONFTEST: icc_set_bw
 CONFTEST: dma_buf_export_args
 CONFTEST: dma_buf_ops_has_kmap
 CONFTEST: dma_buf_ops_has_kmap_atomic
 CONFTEST: dma_buf_ops_has_map
 CONFTEST: dma_buf_ops_has_map_atomic
 CONFTEST: dma_buf_has_dynamic_attachment
 CONFTEST: dma_buf_attachment_has_peer2peer
 CONFTEST: dma_set_mask_and_coherent
 CONFTEST: devm_clk_bulk_get_all
 CONFTEST: get_task_ioprio
 CONFTEST: mdev_set_iommu_device
 CONFTEST: offline_and_remove_memory
 CONFTEST: crypto_tfm_ctx_aligned
 CONFTEST: wait_on_bit_lock_argument_count
 CONFTEST: radix_tree_empty
 CONFTEST: radix_tree_replace_slot
 CONFTEST: pnv_npu2_init_context
 CONFTEST: cpumask_of_node
 CONFTEST: ioasid_get
 CONFTEST: mm_pasid_drop
 CONFTEST: mmget_not_zero
 CONFTEST: mmgrab
 CONFTEST: iommu_sva_bind_device_has_drvdata_arg
 CONFTEST: vm_fault_to_errno
 CONFTEST: acpi_video_backlight_use_native
 CONFTEST: drm_dev_unref
 CONFTEST: drm_reinit_primary_mode_group
 CONFTEST: get_user_pages_remote
 CONFTEST: get_user_pages
 CONFTEST: pin_user_pages_remote
 CONFTEST: pin_user_pages
 CONFTEST: drm_gem_object_lookup
 CONFTEST: drm_atomic_state_ref_counting
 CONFTEST: drm_driver_has_gem_prime_res_obj
 CONFTEST: drm_atomic_helper_connector_dpms
 CONFTEST: drm_connector_funcs_have_mode_in_name
 CONFTEST: drm_connector_has_vrr_capable_property
 CONFTEST: drm_framebuffer_get
 CONFTEST: drm_dev_put
 CONFTEST: drm_format_num_planes
 CONFTEST: drm_connector_for_each_possible_encoder
 CONFTEST: drm_rotation_available
 CONFTEST: drm_vma_offset_exact_lookup_locked
 CONFTEST: nvhost_dma_fence_unpack
 CONFTEST: is_export_symbol_gpl_of_node_to_nid
 CONFTEST: is_export_symbol_gpl_sme_active
 CONFTEST: is_export_symbol_present_swiotlb_map_sg_attrs
 CONFTEST: is_export_symbol_present_swiotlb_dma_ops
 CONFTEST: is_export_symbol_present___close_fd
 CONFTEST: is_export_symbol_present_close_fd
 CONFTEST: is_export_symbol_present_get_unused_fd
 CONFTEST: is_export_symbol_present_get_unused_fd_flags
 CONFTEST: is_export_symbol_present_nvhost_get_default_device
 CONFTEST: is_export_symbol_present_nvhost_syncpt_unit_interface_get_byte_offset
 CONFTEST: is_export_symbol_present_nvhost_syncpt_unit_interface_get_aperture
 CONFTEST: is_export_symbol_present_tegra_dce_register_ipc_client
 CONFTEST: is_export_symbol_present_tegra_dce_unregister_ipc_client
 CONFTEST: is_export_symbol_present_tegra_dce_client_ipc_send_recv
 CONFTEST: is_export_symbol_present_dram_clk_to_mc_clk
 CONFTEST: is_export_symbol_present_get_dram_num_channels
 CONFTEST: is_export_symbol_present_tegra_dram_types
 CONFTEST: is_export_symbol_present_pxm_to_node
 CONFTEST: is_export_symbol_present_screen_info
 CONFTEST: is_export_symbol_gpl_screen_info
 CONFTEST: is_export_symbol_present_i2c_bus_status
 CONFTEST: is_export_symbol_present_tegra_fuse_control_read
 CONFTEST: is_export_symbol_present_tegra_get_platform
 CONFTEST: is_export_symbol_present_pci_find_host_bridge
 CONFTEST: is_export_symbol_present_tsec_comms_send_cmd
 CONFTEST: is_export_symbol_present_tsec_comms_set_init_cb
 CONFTEST: is_export_symbol_present_tsec_comms_clear_init_cb
 CONFTEST: is_export_symbol_present_tsec_comms_alloc_mem_from_gscco
 CONFTEST: is_export_symbol_present_tsec_comms_free_gscco_mem
 CONFTEST: is_export_symbol_present_memory_block_size_bytes
 CONFTEST: crypto
 CONFTEST: is_export_symbol_present_int_active_memcg
 CONFTEST: is_export_symbol_present_migrate_vma_setup
 CONFTEST: dma_ops
 CONFTEST: swiotlb_dma_ops
 CONFTEST: noncoherent_swiotlb_dma_ops
 CONFTEST: vm_fault_has_address
 CONFTEST: vm_insert_pfn_prot
 CONFTEST: vmf_insert_pfn_prot
 CONFTEST: vm_ops_fault_removed_vma_arg
 CONFTEST: kmem_cache_has_kobj_remove_work
 CONFTEST: sysfs_slab_unlink
 CONFTEST: proc_ops
 CONFTEST: timespec64
 CONFTEST: vmalloc_has_pgprot_t_arg
 CONFTEST: mm_has_mmap_lock
 CONFTEST: pci_channel_state
 CONFTEST: pci_dev_has_ats_enabled
 CONFTEST: remove_memory_has_nid_arg
 CONFTEST: add_memory_driver_managed_has_mhp_flags_arg
 CONFTEST: num_registered_fb
 CONFTEST: pci_driver_has_driver_managed_dma
 CONFTEST: vm_area_struct_has_const_vm_flags
 CONFTEST: memory_failure_has_trapno_arg
 CONFTEST: backing_dev_info
 CONFTEST: mm_context_t
 CONFTEST: vm_fault_t
 CONFTEST: mmu_notifier_ops_invalidate_range
 CONFTEST: mmu_notifier_ops_arch_invalidate_secondary_tlbs
 CONFTEST: migrate_vma_added_flags
 CONFTEST: migrate_device_range
 CONFTEST: handle_mm_fault_has_mm_arg
 CONFTEST: handle_mm_fault_has_pt_regs_arg
 CONFTEST: mempolicy_has_unified_nodes
 CONFTEST: mempolicy_has_home_node
 CONFTEST: mpol_preferred_many_present
 CONFTEST: mmu_interval_notifier
 CONFTEST: drm_bus_present
 CONFTEST: drm_bus_has_bus_type
 CONFTEST: drm_bus_has_get_irq
 CONFTEST: drm_bus_has_get_name
 CONFTEST: drm_driver_has_device_list
 CONFTEST: drm_driver_has_legacy_dev_list
 CONFTEST: drm_driver_has_set_busid
 CONFTEST: drm_crtc_state_has_connectors_changed
 CONFTEST: drm_init_function_args
 CONFTEST: drm_helper_mode_fill_fb_struct
 CONFTEST: drm_master_drop_has_from_release_arg
 CONFTEST: drm_driver_unload_has_int_return_type
 CONFTEST: drm_atomic_helper_crtc_destroy_state_has_crtc_arg
 CONFTEST: drm_atomic_helper_plane_destroy_state_has_plane_arg
 CONFTEST: drm_mode_object_find_has_file_priv_arg
 CONFTEST: dma_buf_owner
 CONFTEST: drm_connector_list_iter
 CONFTEST: drm_atomic_helper_swap_state_has_stall_arg
 CONFTEST: drm_driver_prime_flag_present
 CONFTEST: drm_gem_object_has_resv
 CONFTEST: drm_crtc_state_has_async_flip
 CONFTEST: drm_crtc_state_has_pageflip_flags
 CONFTEST: drm_crtc_state_has_vrr_enabled
 CONFTEST: drm_format_modifiers_present
 CONFTEST: drm_vma_node_is_allowed_has_tag_arg
 CONFTEST: drm_vma_offset_node_has_readonly
 CONFTEST: drm_display_mode_has_vrefresh
 CONFTEST: drm_driver_master_set_has_int_return_type
 CONFTEST: drm_driver_has_gem_free_object
 CONFTEST: drm_prime_pages_to_sg_has_drm_device_arg
 CONFTEST: drm_driver_has_gem_prime_callbacks
 CONFTEST: drm_crtc_atomic_check_has_atomic_state_arg
 CONFTEST: drm_gem_object_vmap_has_map_arg
 CONFTEST: drm_plane_atomic_check_has_atomic_state_arg
 CONFTEST: drm_device_has_pdev
 CONFTEST: drm_crtc_state_has_no_vblank
 CONFTEST: drm_mode_config_has_allow_fb_modifiers
 CONFTEST: drm_has_hdr_output_metadata
 CONFTEST: dma_resv_add_fence
 CONFTEST: dma_resv_reserve_fences
 CONFTEST: reservation_object_reserve_shared_has_num_fences_arg
 CONFTEST: drm_connector_has_override_edid
 CONFTEST: drm_master_has_leases
 CONFTEST: drm_file_get_master
 CONFTEST: drm_modeset_lock_all_end
 CONFTEST: drm_connector_lookup
 CONFTEST: drm_connector_put
 CONFTEST: drm_driver_has_dumb_destroy
 CONFTEST: drm_unlocked_ioctl_flag_present
 CONFTEST: dom0_kernel_present
 CONFTEST: nvidia_vgpu_kvm_build
 CONFTEST: nvidia_grid_build
 CONFTEST: nvidia_grid_csp_build
 CONFTEST: pm_runtime_available
 CONFTEST: pci_class_multimedia_hd_audio
 CONFTEST: drm_available
 CONFTEST: vfio_pci_core_available
 CONFTEST: mdev_available
 CONFTEST: cmd_uphy_display_port_init
 CONFTEST: cmd_uphy_display_port_off
 CONFTEST: memory_failure_mf_sw_simulated_defined
 CONFTEST: drm_atomic_available
 CONFTEST: is_export_symbol_gpl_refcount_inc
 CONFTEST: is_export_symbol_gpl_refcount_dec_and_test
 CONFTEST: drm_alpha_blending_available
 CONFTEST: is_export_symbol_present_drm_gem_prime_fd_to_handle
 CONFTEST: is_export_symbol_present_drm_gem_prime_handle_to_fd
 CONFTEST: ib_peer_memory_symbols
  CC [M]  nvidia/nv.o
  CC [M]  nvidia/nv-pci.o
  CC [M]  nvidia/nv-dmabuf.o
  CC [M]  nvidia/nv-nano-timer.o
  CC [M]  nvidia/nv-acpi.o
  CC [M]  nvidia/nv-cray.o
  CC [M]  nvidia/nv-dma.o
  CC [M]  nvidia/nv-i2c.o
  CC [M]  nvidia/nv-mmap.o
  CC [M]  nvidia/nv-p2p.o
  CC [M]  nvidia/nv-pat.o
  CC [M]  nvidia/nv-procfs.o
  CC [M]  nvidia/nv-usermap.o
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv-acpi.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
  CC [M]  nvidia/nv-vm.o
  CC [M]  nvidia/nv-vtophys.o
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv-cray.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv-dma.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
  CC [M]  nvidia/os-interface.o
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv-mmap.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv-p2p.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv-pat.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv-procfs.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv-usermap.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv-vtophys.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/os-interface.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv-vm.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv-nano-timer.c:30:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv-p2p.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv-pat.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv-usermap.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv-dma.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv-acpi.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv-mmap.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/os-interface.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv-vtophys.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv.c:33:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-pci-types.h:28,
                 from nvidia/nv-pci.c:25:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv-nano-timer.c:31:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/nospec-branch.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/paravirt_types.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/ptrace.h:175,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/math_emu.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/processor.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/timex.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timex.h:67,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time32.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:60,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from nvidia/nv-nano-timer.c:27:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kasan-checks.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/asm-generic/rwonce.h:26,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/generated/asm/rwonce.h:1,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/compiler.h:344,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/array_size.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kernel.h:16,
                 from nvidia/nv-nano-timer.c:26:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34,
                 from ././common/inc/nv-pci.h:28,
                 from nvidia/nv-pci.c:26:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mmzone.h:22,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/gfp.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/xarray.h:16,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/radix-tree.h:21,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/idr.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kernfs.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sysfs.h:16,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kobject.h:20,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/pci.h:35,
                 from nvidia/nv-pci-table.h:27,
                 from nvidia/nv-pci.c:24:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mutex.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kernfs.h:11:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/scatterlist.h:8,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/dmapool.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/pci.h:1662:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv-cray.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/mei_uuid.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/mei.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mod_devicetable.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/pci.h:27:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv-vm.c:26:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from nvidia/nv-vm.c:25:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv.c:34:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mmzone.h:22,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/gfp.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/umh.h:4,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kmod.h:9,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/module.h:17,
                 from nvidia/nv.c:24:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/nospec-branch.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/paravirt_types.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/ptrace.h:175,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/math_emu.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/processor.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/timex.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timex.h:67,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time32.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:60,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stat.h:19,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/module.h:13:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kasan-checks.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/asm-generic/rwonce.h:26,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/generated/asm/rwonce.h:1,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/compiler.h:344,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/build_bug.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/container_of.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/list.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/module.h:12:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv-procfs.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/nv.h:41,
                 from ././common/inc/nv-linux.h:28,
                 from ././common/inc/nv-dmabuf.h:27,
                 from nvidia/nv-dmabuf.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mmzone.h:22,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/gfp.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/scatterlist.h:8,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/dma-buf.h:19,
                 from nvidia/nv-dmabuf.c:23:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/nospec-branch.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/irqflags.h:9,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/irqflags.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/special_insns.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/io.h:45,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/io.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/iosys-map.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/dma-buf.h:16:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/io.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv-i2c.c:28:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv-i2c.c:29:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mmzone.h:22,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/gfp.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/slab.h:16,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/resource_ext.h:11,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/acpi.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/i2c.h:13,
                 from nvidia/nv-i2c.c:26:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mmzone.h:8:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/memcontrol.h:21,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/swap.h:9,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/suspend.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/regulator/consumer.h:35,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/i2c.h:19:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kasan-checks.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/asm-generic/rwonce.h:26,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/generated/asm/rwonce.h:1,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/compiler.h:344,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/build_bug.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/bits.h:22,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ioport.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/acpi.h:12:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-usermap.o] Error 1
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
  CC [M]  nvidia/os-mlock.o
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia/os-interface.c: At top level:
nvidia/os-interface.c:370:7: warning: no previous prototype for 'os_mem_copy_custom' [-Wmissing-prototypes]
  370 | void *os_mem_copy_custom(
      |       ^~~~~~~~~~~~~~~~~~
nvidia/os-interface.c: In function 'os_alloc_mem':
././common/inc/nv-linux.h:609:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  609 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/os-interface.c:584:13: note: in expansion of macro 'NV_KMALLOC_ATOMIC'
  584 |             NV_KMALLOC_ATOMIC(*address, alloc_size);
      |             ^~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:624:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  624 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/os-interface.c:590:13: note: in expansion of macro 'NV_KMALLOC_NO_OOM'
  590 |             NV_KMALLOC_NO_OOM(*address, alloc_size);
      |             ^~~~~~~~~~~~~~~~~
nvidia/os-interface.c: In function 'os_get_current_time':
nvidia/os-interface.c:633:25: error: passing argument 1 of 'ktime_get_real_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  633 |     ktime_get_real_ts64(&tm);
      |                         ^~~
      |                         |
      |                         struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:44:52: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   44 | extern void ktime_get_real_ts64(struct timespec64 *tv);
      |                                 ~~~~~~~~~~~~~~~~~~~^~
nvidia/os-interface.c: In function 'os_get_current_tick_hr':
nvidia/os-interface.c:647:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  647 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia/os-interface.c: In function 'os_get_current_tick':
nvidia/os-interface.c:656:21: error: storage size of 'ts' isn't known
  656 |     struct timespec ts;
      |                     ^~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-pat.o] Error 1
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
  CC [M]  nvidia/os-pci.o
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/os-mlock.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-vtophys.o] Error 1
nvidia/nv-pci.c: In function 'nv_pci_probe':
././common/inc/nv-linux.h:602:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  602 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv-pci.c:396:5: note: in expansion of macro 'NV_KZALLOC'
  396 |     NV_KZALLOC(nvl, sizeof(nv_linux_state_t));
      |     ^~~~~~~~~~
  CC [M]  nvidia/os-registry.o
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/os-pci.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
nvidia/nv-dma.c: At top level:
nvidia/nv-dma.c:293:6: warning: no previous prototype for 'nv_load_dma_map_scatterlist' [-Wmissing-prototypes]
  293 | void nv_load_dma_map_scatterlist(
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia/nv-dma.c:489:23: warning: no previous prototype for 'nv_dma_unmap_sgt' [-Wmissing-prototypes]
  489 | NV_STATUS NV_API_CALL nv_dma_unmap_sgt(
      |                       ^~~~~~~~~~~~~~~~
nvidia/os-interface.c:657:5: error: implicit declaration of function 'jiffies_to_timespec'; did you mean 'jiffies_to_timespec64'? [-Wimplicit-function-declaration]
  657 |     jiffies_to_timespec(jiffies, &ts);
      |     ^~~~~~~~~~~~~~~~~~~
      |     jiffies_to_timespec64
nvidia/nv-mmap.c: At top level:
nvidia/nv-mmap.c:299:15: error: initialization of 'vm_fault_t (*)(struct vm_fault *)' {aka 'unsigned int (*)(struct vm_fault *)'} from incompatible pointer type 'vm_fault_t (*)(struct vm_area_struct *, struct vm_fault *)' {aka 'int (*)(struct vm_area_struct *, struct vm_fault *)'} [-Wincompatible-pointer-types]
  299 |     .fault  = nvidia_fault,
      |               ^~~~~~~~~~~~
nvidia/nv-mmap.c:299:15: note: (near initialization for 'nv_vm_ops.fault')
nvidia/nv-mmap.c:201:19: note: 'nvidia_fault' declared here
  201 | static vm_fault_t nvidia_fault(
      |                   ^~~~~~~~~~~~
nvidia/nv-mmap.c:303:5: warning: conflicting types for 'nv_encode_caching' due to enum/integer mismatch; have 'int(pgprot_t *, NvU32,  nv_memory_type_t)' {aka 'int(struct pgprot *, unsigned int,  nv_memory_type_t)'} [-Wenum-int-mismatch]
  303 | int nv_encode_caching(
      |     ^~~~~~~~~~~~~~~~~
In file included from ././common/inc/nv-linux.h:1761:
././common/inc/nv-proto.h:46:13: note: previous declaration of 'nv_encode_caching' with type 'int(pgprot_t *, NvU32,  NvU32)' {aka 'int(struct pgprot *, unsigned int,  unsigned int)'}
   46 | int         nv_encode_caching           (pgprot_t *, NvU32, NvU32);
      |             ^~~~~~~~~~~~~~~~~
nvidia/nv-mmap.c:371:1: warning: 'static' is not at beginning of declaration [-Wold-style-declaration]
  371 | int static nvidia_mmap_peer_io(
      | ^~~
nvidia/nv-mmap.c:392:1: warning: 'static' is not at beginning of declaration [-Wold-style-declaration]
  392 | int static nvidia_mmap_sysmem(
      | ^~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-p2p.o] Error 1
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/os-registry.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
  CC [M]  nvidia/os-usermap.o
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-acpi.o] Error 1
  CC [M]  nvidia/nv-modeset-interface.o
nvidia/os-interface.c:658:20: error: implicit declaration of function 'timespec_to_ns'; did you mean 'timespec64_to_ns'? [-Wimplicit-function-declaration]
  658 |     return (NvU64) timespec_to_ns(&ts);
      |                    ^~~~~~~~~~~~~~
      |                    timespec64_to_ns
nvidia/os-interface.c:656:21: warning: unused variable 'ts' [-Wunused-variable]
  656 |     struct timespec ts;
      |                     ^~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-pci.o] Error 1
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
nvidia/os-interface.c: In function 'os_queue_work_item':
././common/inc/nv-linux.h:609:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  609 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/os-interface.c:1113:5: note: in expansion of macro 'NV_KMALLOC_ATOMIC'
 1113 |     NV_KMALLOC_ATOMIC(oqd, sizeof(os_queue_data_t));
      |     ^~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
  CC [M]  nvidia/nv-pci-table.o
nvidia/os-interface.c: In function 'os_write_file':
nvidia/os-interface.c:1792:54: error: passing argument 4 of 'kernel_write' makes pointer from integer without a cast [-Wint-conversion]
 1792 |     num_written = kernel_write(pFile, pBuffer, size, f_pos);
      |                                                      ^~~~~
      |                                                      |
      |                                                      loff_t {aka long long int}
nvidia/os-interface.c:1792:54: note: possible fix: take the address with '&'
 1792 |     num_written = kernel_write(pFile, pBuffer, size, f_pos);
      |                                                      ^~~~~
      |                                                      &
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/huge_mm.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:1133:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:3189:66: note: expected 'loff_t *' {aka 'long long int *'} but argument is of type 'loff_t' {aka 'long long int'}
 3189 | extern ssize_t kernel_write(struct file *, const void *, size_t, loff_t *);
      |                                                                  ^~~~~~~~
nvidia/os-interface.c: In function 'os_read_file':
nvidia/os-interface.c:1832:35: error: passing argument 2 of 'kernel_read' makes pointer from integer without a cast [-Wint-conversion]
 1832 |     num_read = kernel_read(pFile, f_pos, pBuffer, size);
      |                                   ^~~~~
      |                                   |
      |                                   loff_t {aka long long int}
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-dma.o] Error 1
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:3187:43: note: expected 'void *' but argument is of type 'loff_t' {aka 'long long int'}
 3187 | extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
      |                                           ^~~~~~
nvidia/os-interface.c:1832:42: error: passing argument 3 of 'kernel_read' makes integer from pointer without a cast [-Wint-conversion]
 1832 |     num_read = kernel_read(pFile, f_pos, pBuffer, size);
      |                                          ^~~~~~~
      |                                          |
      |                                          NvU8 * {aka unsigned char *}
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:3187:51: note: expected 'size_t' {aka 'long unsigned int'} but argument is of type 'NvU8 *' {aka 'unsigned char *'}
 3187 | extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
      |                                                   ^~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia/os-interface.c:1832:51: error: passing argument 4 of 'kernel_read' makes pointer from integer without a cast [-Wint-conversion]
 1832 |     num_read = kernel_read(pFile, f_pos, pBuffer, size);
      |                                                   ^~~~
      |                                                   |
      |                                                   NvU64 {aka long long unsigned int}
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:3187:59: note: expected 'loff_t *' {aka 'long long int *'} but argument is of type 'NvU64' {aka 'long long unsigned int'}
 3187 | extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
      |                                                           ^~~~~~~~
nvidia/os-interface.c: In function 'os_alloc_wait_queue':
././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  595 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/os-interface.c:1945:5: note: in expansion of macro 'NV_KMALLOC'
 1945 |     NV_KMALLOC(*wq, sizeof(os_wait_queue));
      |     ^~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/os-usermap.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
  CC [M]  nvidia/nv-kthread-q.o
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-mmap.o] Error 1
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv-modeset-interface.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
  CC [M]  nvidia/nv-memdbg.o
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-i2c.o] Error 1
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
  CC [M]  nvidia/nv-ibmnpu.o
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/nv.h:41,
                 from ././common/inc/nv-linux.h:28,
                 from nvidia/nv-memdbg.c:25:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/os-interface.o] Error 1
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
  CC [M]  nvidia/nv-report-err.o
nvidia/nv-nano-timer.c: In function 'nv_alloc_nano_timer':
././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  595 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv-nano-timer.c:86:5: note: in expansion of macro 'NV_KMALLOC'
   86 |     NV_KMALLOC(nv_nstimer, sizeof(nv_nano_timer_t));
      |     ^~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/nv.h:41,
                 from ././common/inc/nv-linux.h:28,
                 from nvidia/nv-ibmnpu.c:27:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/nv.h:41,
                 from ././common/inc/nv-linux.h:28,
                 from nvidia/nv-report-err.c:25:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-nano-timer.o] Error 1
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/sound/hdaudio.h:18,
                 from nvidia/nv.c:70:
/usr/lib/modules/6.14.6-arch1-1/build/include/sound/pcm.h: In function 'snd_pcm_gettime':
/usr/lib/modules/6.14.6-arch1-1/build/include/sound/pcm.h:1292:32: error: passing argument 1 of 'ktime_get_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
 1292 |                 ktime_get_ts64(tv);
      |                                ^~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:43:47: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   43 | extern void ktime_get_ts64(struct timespec64 *ts);
      |                            ~~~~~~~~~~~~~~~~~~~^~
/usr/lib/modules/6.14.6-arch1-1/build/include/sound/pcm.h:1295:36: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
 1295 |                 ktime_get_raw_ts64(tv);
      |                                    ^~
      |                                    |
      |                                    struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
/usr/lib/modules/6.14.6-arch1-1/build/include/sound/pcm.h:1298:37: error: passing argument 1 of 'ktime_get_real_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
 1298 |                 ktime_get_real_ts64(tv);
      |                                     ^~
      |                                     |
      |                                     struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:44:52: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   44 | extern void ktime_get_real_ts64(struct timespec64 *tv);
      |                                 ~~~~~~~~~~~~~~~~~~~^~
  CC [M]  nvidia/nv-rsync.o
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-cray.o] Error 1
nvidia/nv.c: In function 'nvos_create_alloc':
././common/inc/nv-linux.h:602:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  602 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv.c:262:5: note: in expansion of macro 'NV_KZALLOC'
  262 |     NV_KZALLOC(at, sizeof(nv_alloc_t));
      |     ^~~~~~~~~~
  CC [M]  nvidia/nv-msi.o
nvidia/nv.c: At top level:
nvidia/nv.c:735:12: warning: no previous prototype for 'nvidia_init_module' [-Wmissing-prototypes]
  735 | int __init nvidia_init_module(void)
      |            ^~~~~~~~~~~~~~~~~~
nvidia/nv.c:855:6: warning: no previous prototype for 'nvidia_exit_module' [-Wmissing-prototypes]
  855 | void nvidia_exit_module(void)
      |      ^~~~~~~~~~~~~~~~~~
nvidia/nv.c: In function 'nv_alloc_file_private':
././common/inc/nv-linux.h:602:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  602 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv.c:879:5: note: in expansion of macro 'NV_KZALLOC'
  879 |     NV_KZALLOC(nvlfp, sizeof(nv_linux_file_private_t));
      |     ^~~~~~~~~~
nvidia/nv.c: At top level:
nvidia/nv.c:1124:23: warning: no previous prototype for 'nv_get_num_dpaux_instances' [-Wmissing-prototypes]
 1124 | NV_STATUS NV_API_CALL nv_get_num_dpaux_instances(nv_state_t *nv, NvU32 *num_instances)
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia/nv-vm.c: In function 'nv_set_memory_array_type':
nvidia/nv-vm.c:92:13: error: implicit declaration of function 'set_memory_array_uc'; did you mean 'set_pages_array_uc'? [-Wimplicit-function-declaration]
   92 |             set_memory_array_uc(pages, num_pages);
      |             ^~~~~~~~~~~~~~~~~~~
      |             set_pages_array_uc
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/nv.h:41,
                 from ././common/inc/nv-linux.h:28,
                 from nvidia/nv-rsync.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
nvidia/nv.c: In function 'nvidia_ioctl':
././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  595 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv.c:2104:5: note: in expansion of macro 'NV_KMALLOC'
 2104 |     NV_KMALLOC(arg_copy, arg_size);
      |     ^~~~~~~~~~
nvidia/nv-procfs.c: In function 'nv_procfs_open_file':
././common/inc/nv-linux.h:602:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  602 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv-procfs.c:276:5: note: in expansion of macro 'NV_KZALLOC'
  276 |     NV_KZALLOC(nvpp, sizeof(nv_procfs_private_t));
      |     ^~~~~~~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-dmabuf.o] Error 1
././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  595 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv.c:2165:13: note: in expansion of macro 'NV_KMALLOC'
 2165 |             NV_KMALLOC(nvlfp->attached_gpus, arg_size);
      |             ^~~~~~~~~~
nvidia/nv-procfs.c: At top level:
nvidia/nv-procfs.c:698:1: warning: no previous prototype for 'exercise_error_forwarding_va' [-Wmissing-prototypes]
  698 | exercise_error_forwarding_va(
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia/nv.c: In function 'nv_map_guest_pages':
././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  595 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv.c:2805:5: note: in expansion of macro 'NV_KMALLOC'
 2805 |     NV_KMALLOC(pages, sizeof(struct page *) * page_count);
      |     ^~~~~~~~~~
  CC [M]  nvidia/nv-caps.o
In file included from ././common/inc/nv-procfs.h:26,
                 from nvidia/nv-procfs.c:31:
nvidia/nv-procfs.c: In function 'nv_procfs_add_text_file':
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-procfs.c:1312:5: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 1312 |     NV_CREATE_PROC_FILE(filename, parent, text_file, (void *)text);
      |     ^~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/efi.h:19,
                 from ././common/inc/nv-linux.h:220:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/nv.h:41,
                 from ././common/inc/nv-linux.h:28,
                 from ././common/inc/nv-msi.h:27,
                 from nvidia/nv-msi.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
nvidia/nv.c: In function 'nv_alloc_kernel_mapping':
././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  595 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv.c:3282:13: note: in expansion of macro 'NV_KMALLOC'
 3282 |             NV_KMALLOC(pages, sizeof(struct page *) * page_count);
      |             ^~~~~~~~~~
nvidia/nv-procfs.c: In function 'nv_procfs_init':
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-procfs.c:1342:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 1342 |     entry = NV_CREATE_PROC_FILE("params", proc_nvidia, params, NULL);
      |             ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-procfs.c:1346:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 1346 |     entry = NV_CREATE_PROC_FILE("registry", proc_nvidia, registry, NULL);
      |             ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-procfs.c:1351:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 1351 |     entry = NV_CREATE_PROC_FILE("suspend_depth", proc_nvidia, suspend_depth, NULL);
      |             ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-procfs.c:1355:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 1355 |     entry = NV_CREATE_PROC_FILE("suspend", proc_nvidia, suspend, NULL);
      |             ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-procfs.c:1377:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 1377 |     entry = NV_CREATE_PROC_FILE("version", proc_nvidia, version, NULL);
      |             ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
nvidia/nv.c: In function 'nv_post_event':
nvidia/nv-procfs.c: In function 'nv_procfs_add_gpu':
././common/inc/nv-linux.h:609:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  609 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv.c:3554:9: note: in expansion of macro 'NV_KMALLOC_ATOMIC'
 3554 |         NV_KMALLOC_ATOMIC(nvet, sizeof(nvidia_event_t));
      |         ^~~~~~~~~~~~~~~~~
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-procfs.c:1419:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 1419 |     entry = NV_CREATE_PROC_FILE("information", proc_nvidia_gpu, gpu_info,
      |             ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-procfs.c:1424:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 1424 |     entry = NV_CREATE_PROC_FILE("registry", proc_nvidia_gpu, registry, nv);
      |             ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-procfs.c:1428:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 1428 |     entry = NV_CREATE_PROC_FILE("power", proc_nvidia_gpu, power, nv);
      |             ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-procfs.c:1434:17: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 1434 |         entry = NV_CREATE_PROC_FILE("exercise_error_forwarding", proc_nvidia_gpu,
      |                 ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-procfs.c:1442:17: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 1442 |         entry = NV_CREATE_PROC_FILE("unbindLock", proc_nvidia_gpu, unbind_lock, nv);
      |                 ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-procfs.c:1449:17: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 1449 |         entry = NV_CREATE_PROC_FILE("numa_status", proc_nvidia_gpu, numa_status,
      |                 ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-procfs.c:1454:17: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 1454 |         entry = NV_CREATE_PROC_FILE("offline_pages", proc_nvidia_gpu, offline_pages,
      |                 ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/nv.h:41,
                 from ././common/inc/nv-linux.h:28,
                 from nvidia/nv-caps.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
nvidia/nv-vm.c:95:13: error: implicit declaration of function 'set_memory_array_wb'; did you mean 'set_pages_array_wb'? [-Wimplicit-function-declaration]
   95 |             set_memory_array_wb(pages, num_pages);
      |             ^~~~~~~~~~~~~~~~~~~
      |             set_pages_array_wb
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-procfs.o] Error 1
  CC [M]  nvidia/nv-frontend.o
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv.o] Error 1
  CC [M]  nvidia/nv_uvm_interface.o
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-vm.o] Error 1
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv-frontend.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
  CC [M]  nvidia/libspdm_aead.o
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv_uvm_interface.c:32:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from nvidia/internal_crypt_lib.h:32,
                 from nvidia/libspdm_aead.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-kthread-q.h:33,
                 from nvidia/nv-kthread-q.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
nvidia/libspdm_aead.c:41:5: warning: no previous prototype for 'libspdm_aead_prealloc' [-Wmissing-prototypes]
   41 | int libspdm_aead_prealloc(void **context, char const *alg)
      |     ^~~~~~~~~~~~~~~~~~~~~
nvidia/libspdm_aead.c:171:5: warning: no previous prototype for 'libspdm_aead_prealloced' [-Wmissing-prototypes]
  171 | int libspdm_aead_prealloced(void *context,
      |     ^~~~~~~~~~~~~~~~~~~~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/libspdm_aead.o] Error 1
  CC [M]  nvidia/libspdm_ecc.o
  CC [M]  nvidia/libspdm_hkdf.o
In file included from ././common/inc/conftest.h:28,
                 from nvidia/internal_crypt_lib.h:32,
                 from nvidia/libspdm_hkdf.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/os-mlock.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/os-pci.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/os-registry.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv-modeset-interface.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/libspdm_hkdf.o] Error 1
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
  CC [M]  nvidia/libspdm_rand.o
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:34:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/os-usermap.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
In file included from ././common/inc/nv-linux.h:34:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from ././common/inc/nv.h:35:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
  CC [M]  nvidia/libspdm_shash.o
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/conftest.h:28,
                 from nvidia/internal_crypt_lib.h:32,
                 from nvidia/libspdm_shash.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
nvidia/nv-kthread-q.c: In function 'thread_create_on_node':
nvidia/nv-kthread-q.c:179:5: warning: 'static' is not at beginning of declaration [-Wold-style-declaration]
  179 |     const static unsigned attempts = 3;
      |     ^~~~~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-kthread-q.o] Error 1
  CC [M]  nvidia/libspdm_aead_aes_gcm.o
  CC [M]  nvidia/libspdm_sha.o
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
  CC [M]  nvidia/libspdm_hmac_sha.o
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
  CC [M]  nvidia/libspdm_hkdf_sha.o
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/libspdm_shash.o] Error 1
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv-frontend.c:25:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
  CC [M]  nvidia/libspdm_ec.o
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
  CC [M]  nvidia/libspdm_x509.o
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:34:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
  CC [M]  nvidia/nvlink_linux.o
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
  CC [M]  nvidia/nvlink_caps.o
In file included from ././common/inc/nv-linux.h:34:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
  CC [M]  nvidia/linux_nvswitch.o
In file included from ././common/inc/conftest.h:28,
                 from nvidia/nvlink_linux.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv_uvm_interface.c:33:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/nv.h:41,
                 from ././common/inc/nv-linux.h:28,
                 from nvidia/linux_nvswitch.h:28,
                 from nvidia/linux_nvswitch.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
nvidia/os-mlock.c: In function 'nv_follow_pfn':
nvidia/os-mlock.c:34:12: error: implicit declaration of function 'unsafe_follow_pfn'; did you mean 'nv_follow_pfn'? [-Wimplicit-function-declaration]
   34 |     return unsafe_follow_pfn(vma, address, pfn);
      |            ^~~~~~~~~~~~~~~~~
      |            nv_follow_pfn
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/os-mlock.o] Error 1
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
  CC [M]  nvidia/procfs_nvswitch.o
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/os-pci.o] Error 1
  CC [M]  nvidia/i2c_nvswitch.o
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/nv.h:41,
                 from ././common/inc/nv-linux.h:28,
                 from nvidia/linux_nvswitch.h:28,
                 from nvidia/procfs_nvswitch.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/nv.h:41,
                 from ././common/inc/nv-linux.h:28,
                 from nvidia/linux_nvswitch.h:28,
                 from nvidia/i2c_nvswitch.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/os-registry.o] Error 1
  CC [M]  nvidia-uvm/uvm_ats_sva.o
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-modeset-interface.o] Error 1
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
  CC [M]  nvidia-uvm/uvm_conf_computing.o
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_gpu.h:31,
                 from nvidia-uvm/uvm_ats_sva.h:27,
                 from nvidia-uvm/uvm_ats_sva.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_conf_computing.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-report-err.o] Error 1
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
  CC [M]  nvidia-uvm/uvm_sec2_test.o
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-memdbg.o] Error 1
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
  CC [M]  nvidia-uvm/uvm_maxwell_sec2.o
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from ././nvidia-uvm/uvm_linux.h:37,
                 from ././nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_sec2_test.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_gpu.h:31,
                 from nvidia-uvm/uvm_maxwell_sec2.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
nvidia/nv-ibmnpu.c: At top level:
nvidia/nv-ibmnpu.c:395:6: warning: no previous prototype for 'nv_init_ibmnpu_info' [-Wmissing-prototypes]
  395 | void nv_init_ibmnpu_info(nv_state_t *nv)
      |      ^~~~~~~~~~~~~~~~~~~
nvidia/nv-ibmnpu.c:399:6: warning: no previous prototype for 'nv_destroy_ibmnpu_info' [-Wmissing-prototypes]
  399 | void nv_destroy_ibmnpu_info(nv_state_t *nv)
      |      ^~~~~~~~~~~~~~~~~~~~~~
nvidia/nv-ibmnpu.c:403:5: warning: no previous prototype for 'nv_init_ibmnpu_devices' [-Wmissing-prototypes]
  403 | int nv_init_ibmnpu_devices(nv_state_t *nv)
      |     ^~~~~~~~~~~~~~~~~~~~~~
nvidia/nv-ibmnpu.c:408:6: warning: no previous prototype for 'nv_unregister_ibmnpu_devices' [-Wmissing-prototypes]
  408 | void nv_unregister_ibmnpu_devices(nv_state_t *nv)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia/nv-ibmnpu.c:428:5: warning: no previous prototype for 'nv_get_ibmnpu_chip_id' [-Wmissing-prototypes]
  428 | int nv_get_ibmnpu_chip_id(nv_state_t *nv)
      |     ^~~~~~~~~~~~~~~~~~~~~
nvidia/nv-ibmnpu.c:437:6: warning: no previous prototype for 'nv_ibmnpu_cache_flush_numa_region' [-Wmissing-prototypes]
  437 | void nv_ibmnpu_cache_flush_numa_region(nv_state_t *nv)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/os-usermap.o] Error 1
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
  CC [M]  nvidia-uvm/uvm_hopper_sec2.o
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-ibmnpu.o] Error 1
  CC [M]  nvidia-uvm/uvm_common.o
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_hal.h:28,
                 from nvidia-uvm/uvm_hopper_sec2.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-rsync.o] Error 1
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_common.c:20:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
  CC [M]  nvidia-uvm/uvm_linux.o
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_linux.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-frontend.o] Error 1
  CC [M]  nvidia-uvm/nvstatus.o
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
nvidia/nv-msi.c: In function 'nv_init_msi':
././common/inc/nv-linux.h:602:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  602 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv-msi.c:39:9: note: in expansion of macro 'NV_KZALLOC'
   39 |         NV_KZALLOC(nvl->irq_count, sizeof(nv_irq_count_info_t) * nvl->num_intr);
      |         ^~~~~~~~~~
nvidia/nv-msi.c: In function 'nv_init_msix':
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  595 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv-msi.c:90:5: note: in expansion of macro 'NV_KMALLOC'
   90 |     NV_KMALLOC(nvl->msix_entries, sizeof(struct msix_entry) * num_intr);
      |     ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:602:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  602 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv-msi.c:102:5: note: in expansion of macro 'NV_KZALLOC'
  102 |     NV_KZALLOC(nvl->irq_count, sizeof(nv_irq_count_info_t) * num_intr);
      |     ^~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-msi.o] Error 1
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
  CC [M]  nvidia-uvm/nv-kthread-q.o
  CC [M]  nvidia-uvm/nvCpuUuid.o
  CC [M]  nvidia-uvm/nv-kthread-q-selftest.o
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
  CC [M]  nvidia-uvm/uvm.o
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv_uvm_interface.o] Error 1
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nvlink_linux.c:30:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mmzone.h:22,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/gfp.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/xarray.h:16,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/list_lru.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:13,
                 from nvidia/nvlink_linux.h:30,
                 from nvidia/nvlink_linux.c:27:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from nvidia/nvlink_linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kasan-checks.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/asm-generic/rwonce.h:26,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/generated/asm/rwonce.h:1,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/compiler.h:344,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/build_bug.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/init.h:5,
                 from nvidia/nvlink_linux.h:27:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
  CC [M]  nvidia-uvm/uvm_tools.o
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_api.h:28,
                 from nvidia-uvm/uvm.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stat.h:19,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:10:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_tools.c:23:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia/nv-caps.c: At top level:
nvidia/nv-caps.c:269:5: warning: no previous prototype for 'nv_cap_procfs_init' [-Wmissing-prototypes]
  269 | int nv_cap_procfs_init(void)
      |     ^~~~~~~~~~~~~~~~~~
In file included from ././common/inc/nv-procfs.h:26,
                 from nvidia/nv-caps.c:26:
nvidia/nv-caps.c: In function 'nv_cap_procfs_init':
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-caps.c:279:18: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  279 |     file_entry = NV_CREATE_PROC_FILE("mig-minors", nv_cap_procfs_dir,
      |                  ^~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/efi.h:19,
                 from ././common/inc/nv-linux.h:220:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-caps.c:286:18: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  286 |     file_entry = NV_CREATE_PROC_FILE("nvlink-minors", nv_cap_procfs_dir,
      |                  ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-caps.c:293:18: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  293 |     file_entry = NV_CREATE_PROC_FILE("sys-minors", nv_cap_procfs_dir,
      |                  ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/string.h:392,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/bitmap.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/cpumask.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/paravirt.h:21,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/irqflags.h:102,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/irqflags.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:59:
nvidia/nv-caps.c: In function 'nv_cap_find_minor':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/fortify-string.h:259:38: error: passing argument 2 of 'full_name_hash' makes pointer from integer without a cast [-Wint-conversion]
  258 |         __builtin_choose_expr(__is_constexpr(__builtin_strlen(p)),      \
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  259 |                 __builtin_strlen(p), __fortify_strlen(p))
      |                 ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
      |                                      |
      |                                      __kernel_size_t {aka long unsigned int}
././common/inc/nv-hash.h:41:51: note: in expansion of macro 'strlen'
   41 | #define nv_string_hash(_str) full_name_hash(_str, strlen(_str))
      |                                                   ^~~~~~
nvidia/nv-caps.c:42:32: note: in expansion of macro 'nv_string_hash'
   42 | #define nv_cap_hash_key(path) (nv_string_hash(path) % NV_CAP_HASH_SIZE)
      |                                ^~~~~~~~~~~~~~
nvidia/nv-caps.c:310:24: note: in expansion of macro 'nv_cap_hash_key'
  310 |     unsigned int key = nv_cap_hash_key(path);
      |                        ^~~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/dcache.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:8,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/huge_mm.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:1133:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stringhash.h:66:61: note: expected 'const char *' but argument is of type '__kernel_size_t' {aka 'long unsigned int'}
   66 | extern unsigned int __pure full_name_hash(const void *salt, const char *, unsigned int);
      |                                                             ^~~~~~~~~~~~
In file included from nvidia/nv-caps.c:27:
././common/inc/nv-hash.h:41:30: error: too few arguments to function 'full_name_hash'; expected 3, have 2
   41 | #define nv_string_hash(_str) full_name_hash(_str, strlen(_str))
      |                              ^~~~~~~~~~~~~~
nvidia/nv-caps.c:42:32: note: in expansion of macro 'nv_string_hash'
   42 | #define nv_cap_hash_key(path) (nv_string_hash(path) % NV_CAP_HASH_SIZE)
      |                                ^~~~~~~~~~~~~~
nvidia/nv-caps.c:310:24: note: in expansion of macro 'nv_cap_hash_key'
  310 |     unsigned int key = nv_cap_hash_key(path);
      |                        ^~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stringhash.h:66:28: note: declared here
   66 | extern unsigned int __pure full_name_hash(const void *salt, const char *, unsigned int);
      |                            ^~~~~~~~~~~~~~
nvidia/nv-caps.c: In function '_nv_cap_table_init':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/fortify-string.h:259:38: error: passing argument 2 of 'full_name_hash' makes pointer from integer without a cast [-Wint-conversion]
  258 |         __builtin_choose_expr(__is_constexpr(__builtin_strlen(p)),      \
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  259 |                 __builtin_strlen(p), __fortify_strlen(p))
      |                 ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
      |                                      |
      |                                      __kernel_size_t {aka long unsigned int}
././common/inc/nv-hash.h:41:51: note: in expansion of macro 'strlen'
   41 | #define nv_string_hash(_str) full_name_hash(_str, strlen(_str))
      |                                                   ^~~~~~
nvidia/nv-caps.c:42:32: note: in expansion of macro 'nv_string_hash'
   42 | #define nv_cap_hash_key(path) (nv_string_hash(path) % NV_CAP_HASH_SIZE)
      |                                ^~~~~~~~~~~~~~
nvidia/nv-caps.c:334:15: note: in expansion of macro 'nv_cap_hash_key'
  334 |         key = nv_cap_hash_key(table[i].name);
      |               ^~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stringhash.h:66:61: note: expected 'const char *' but argument is of type '__kernel_size_t' {aka 'long unsigned int'}
   66 | extern unsigned int __pure full_name_hash(const void *salt, const char *, unsigned int);
      |                                                             ^~~~~~~~~~~~
././common/inc/nv-hash.h:41:30: error: too few arguments to function 'full_name_hash'; expected 3, have 2
   41 | #define nv_string_hash(_str) full_name_hash(_str, strlen(_str))
      |                              ^~~~~~~~~~~~~~
nvidia/nv-caps.c:42:32: note: in expansion of macro 'nv_string_hash'
   42 | #define nv_cap_hash_key(path) (nv_string_hash(path) % NV_CAP_HASH_SIZE)
      |                                ^~~~~~~~~~~~~~
nvidia/nv-caps.c:334:15: note: in expansion of macro 'nv_cap_hash_key'
  334 |         key = nv_cap_hash_key(table[i].name);
      |               ^~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stringhash.h:66:28: note: declared here
   66 | extern unsigned int __pure full_name_hash(const void *salt, const char *, unsigned int);
      |                            ^~~~~~~~~~~~~~
nvidia/nv-caps.c: In function 'nv_cap_procfs_open':
././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  595 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv-caps.c:410:5: note: in expansion of macro 'NV_KMALLOC'
  410 |     NV_KMALLOC(private, sizeof(nv_cap_file_private_t));
      |     ^~~~~~~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
nvidia/nv-caps.c: In function 'nv_cap_alloc':
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  595 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv-caps.c:614:5: note: in expansion of macro 'NV_KMALLOC'
  614 |     NV_KMALLOC(cap, sizeof(nv_cap_t));
      |     ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  595 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv-caps.c:621:5: note: in expansion of macro 'NV_KMALLOC'
  621 |     NV_KMALLOC(cap->path, len);
      |     ^~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  595 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv-caps.c:633:5: note: in expansion of macro 'NV_KMALLOC'
  633 |     NV_KMALLOC(cap->name, len);
      |     ^~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia/nv-caps.c: In function 'nv_cap_create_file_entry':
nvidia/nv-caps.c:688:35: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
  688 |                                   &g_nv_cap_procfs_fops, (void*)cap);
      |                                   ^~~~~~~~~~~~~~~~~~~~~
      |                                   |
      |                                   nv_proc_ops_t * {aka struct file_operations *}
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'nv_proc_ops_t *' {aka 'struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia/nv-caps.c: In function 'nv_cap_init':
././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  595 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv-caps.c:738:5: note: in expansion of macro 'NV_KMALLOC'
  738 |     NV_KMALLOC(name, (strlen(path) + strlen(dir)) + 1);
      |     ^~~~~~~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-caps.o] Error 1
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
  CC [M]  nvidia-uvm/uvm_global.o
In file included from ././common/inc/nv-linux.h:34:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_api.h:28,
                 from nvidia-uvm/uvm_global.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-kthread-q.h:33,
                 from nvidia-uvm/nv-kthread-q.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-kthread-q.h:33,
                 from nvidia-uvm/nv-kthread-q-selftest.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from ././nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia/linux_nvswitch.c: At top level:
nvidia/linux_nvswitch.c:52:1: warning: 'static' is not at beginning of declaration [-Wold-style-declaration]
   52 | const static struct
      | ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
nvidia/linux_nvswitch.c:1705:1: warning: no previous prototype for 'nvswitch_init' [-Wmissing-prototypes]
 1705 | nvswitch_init
      | ^~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia/linux_nvswitch.c:1790:1: warning: no previous prototype for 'nvswitch_exit' [-Wmissing-prototypes]
 1790 | nvswitch_exit
      | ^~~~~~~~~~~~~
nvidia/linux_nvswitch.c: In function 'nvswitch_os_get_platform_time':
nvidia/linux_nvswitch.c:1827:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
 1827 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia/linux_nvswitch.c: In function 'nvswitch_os_get_platform_time_epoch':
nvidia/linux_nvswitch.c:1849:25: error: passing argument 1 of 'ktime_get_real_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
 1849 |     ktime_get_real_ts64(&ts);
      |                         ^~~
      |                         |
      |                         struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:44:52: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   44 | extern void ktime_get_real_ts64(struct timespec64 *tv);
      |                                 ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/nv-kthread-q.c: In function 'thread_create_on_node':
nvidia-uvm/nv-kthread-q.c:179:5: warning: 'static' is not at beginning of declaration [-Wold-style-declaration]
  179 |     const static unsigned attempts = 3;
      |     ^~~~~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/nv-kthread-q.o] Error 1
  CC [M]  nvidia-uvm/uvm_gpu.o
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/linux_nvswitch.o] Error 1
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
  CC [M]  nvidia-uvm/uvm_gpu_isr.o
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from ././nvidia-uvm/uvm_linux.h:37,
                 from ././common/inc/nv_uvm_interface.h:37,
                 from nvidia-uvm/uvm_gpu.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/nv-procfs.h:26,
                 from nvidia/nvlink_linux.c:31:
nvidia/nvlink_linux.c: In function 'nvlink_permissions_init':
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nvlink_linux.c:115:26: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  115 |     nvlink_permissions = NV_CREATE_PROC_FILE("permissions",
      |                          ^~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/efi.h:19,
                 from ././common/inc/nv-linux.h:220:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia/nvlink_linux.c: At top level:
nvidia/nvlink_linux.c:313:12: warning: no previous prototype for 'nvlink_core_init' [-Wmissing-prototypes]
  313 | int __init nvlink_core_init(void)
      |            ^~~~~~~~~~~~~~~~
nvidia/nvlink_linux.c:389:6: warning: no previous prototype for 'nvlink_core_exit' [-Wmissing-prototypes]
  389 | void nvlink_core_exit(void)
      |      ^~~~~~~~~~~~~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/nv-kthread-q-selftest.c:39:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mmzone.h:22,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/gfp.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/umh.h:4,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kmod.h:9,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/module.h:17,
                 from nvidia-uvm/nv-kthread-q-selftest.c:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-kthread-q.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from nvidia-uvm/nv-kthread-q-selftest.c:31:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from ././common/inc/nv-kthread-q.h:27:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_api.h:28,
                 from nvidia-uvm/uvm_gpu_isr.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stat.h:19,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/module.h:13:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nvlink_linux.o] Error 1
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
  CC [M]  nvidia-uvm/uvm_procfs.o
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-procfs.h:26,
                 from nvidia/procfs_nvswitch.c:25:
nvidia/procfs_nvswitch.c: In function 'nvswitch_procfs_device_add':
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/procfs_nvswitch.c:135:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  135 |     entry = NV_CREATE_PROC_FILE("information", device_dir, device_info,
      |             ^~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/efi.h:19,
                 from ././common/inc/nv-linux.h:220:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
nvidia/procfs_nvswitch.c: In function 'nvswitch_procfs_init':
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/procfs_nvswitch.c:174:28: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  174 |     nvswitch_permissions = NV_CREATE_PROC_FILE("permissions",
      |                            ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_extern_decl.h:27,
                 from nvidia-uvm/uvm_global.h:28,
                 from nvidia-uvm/uvm_procfs.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/procfs_nvswitch.o] Error 1
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/i2c_nvswitch.o] Error 1
  CC [M]  nvidia-uvm/uvm_va_space.o
  CC [M]  nvidia-uvm/uvm_va_space_mm.o
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_va_space_mm.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_api.h:28,
                 from nvidia-uvm/uvm_va_space.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
././nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././nvidia-uvm/uvm_linux.h: At top level:
././nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
././nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_vmalloc':
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32,
                 from nvidia-uvm/uvm_conf_computing.c:25:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
In file included from ././nvidia-uvm/uvm_pmm_gpu.h:55,
                 from ././nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_sec2_test.c:25:
././nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
././nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_ats_sva.o] Error 1
  CC [M]  nvidia-uvm/uvm_gpu_semaphore.o
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_lock.h:28,
                 from nvidia-uvm/uvm_gpu_semaphore.h:28,
                 from nvidia-uvm/uvm_gpu_semaphore.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
cc1: some warnings being treated as errors
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_conf_computing.o] Error 1
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
  CC [M]  nvidia-uvm/uvm_mem.o
cc1: some warnings being treated as errors
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_sec2_test.o] Error 1
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_maxwell_sec2.o] Error 1
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
  CC [M]  nvidia-uvm/uvm_channel.o
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_processors.h:27,
                 from nvidia-uvm/uvm_mem.h:28,
                 from nvidia-uvm/uvm_mem.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
  CC [M]  nvidia-uvm/uvm_rm_mem.o
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_processors.h:27,
                 from nvidia-uvm/uvm_rm_mem.h:28,
                 from nvidia-uvm/uvm_rm_mem.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_lock.h:28,
                 from nvidia-uvm/uvm_gpu_semaphore.h:28,
                 from nvidia-uvm/uvm_channel.h:29,
                 from nvidia-uvm/uvm_channel.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
cc1: some warnings being treated as errors
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_common.o] Error 1
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
  CC [M]  nvidia-uvm/uvm_lock.o
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
cc1: some warnings being treated as errors
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_lock.h:28,
                 from nvidia-uvm/uvm_lock.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_linux.o] Error 1
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
  CC [M]  nvidia-uvm/uvm_hal.o
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_hal.h:28,
                 from nvidia-uvm/uvm_hal.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                 from nvidia-uvm/uvm_channel.h:29,
                 from nvidia-uvm/uvm_push.h:29,
                 from nvidia-uvm/uvm_hal.h:31:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/nv-kthread-q-selftest.c: At top level:
nvidia-uvm/nv-kthread-q-selftest.c:84:6: warning: no previous prototype for 'on_nvq_assert' [-Wmissing-prototypes]
   84 | void on_nvq_assert(void)
      |      ^~~~~~~~~~~~~
In file included from nvidia-uvm/uvm_api.h:31:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from ././nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/nv-kthread-q-selftest.o] Error 1
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
  CC [M]  nvidia-uvm/uvm_range_tree.o
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_hopper_sec2.o] Error 1
  CC [M]  nvidia-uvm/uvm_rb_tree.o
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_range_tree.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_tools.c:25:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm.c: At top level:
nvidia-uvm/uvm.c:401:14: error: initialization of 'vm_fault_t (*)(struct vm_fault *)' {aka 'unsigned int (*)(struct vm_fault *)'} from incompatible pointer type 'vm_fault_t (*)(struct vm_area_struct *, struct vm_fault *)' {aka 'int (*)(struct vm_area_struct *, struct vm_fault *)'} [-Wincompatible-pointer-types]
  401 |     .fault = uvm_vm_fault_sigbus_entry
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm.c:401:14: note: (near initialization for 'uvm_vm_ops_disabled.fault')
nvidia-uvm/uvm.c:377:19: note: 'uvm_vm_fault_sigbus_entry' declared here
  377 | static vm_fault_t uvm_vm_fault_sigbus_entry(struct vm_area_struct *vma, struct vm_fault *vmf)
      |                   ^~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm.c:654:21: error: initialization of 'vm_fault_t (*)(struct vm_fault *)' {aka 'unsigned int (*)(struct vm_fault *)'} from incompatible pointer type 'vm_fault_t (*)(struct vm_area_struct *, struct vm_fault *)' {aka 'int (*)(struct vm_area_struct *, struct vm_fault *)'} [-Wincompatible-pointer-types]
  654 |     .fault        = uvm_vm_fault_entry,
      |                     ^~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm.c:654:21: note: (near initialization for 'uvm_vm_ops_managed.fault')
nvidia-uvm/uvm.c:626:19: note: 'uvm_vm_fault_entry' declared here
  626 | static vm_fault_t uvm_vm_fault_entry(struct vm_area_struct *vma, struct vm_fault *vmf)
      |                   ^~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm.c:655:21: error: initialization of 'vm_fault_t (*)(struct vm_fault *)' {aka 'unsigned int (*)(struct vm_fault *)'} from incompatible pointer type 'vm_fault_t (*)(struct vm_area_struct *, struct vm_fault *)' {aka 'int (*)(struct vm_area_struct *, struct vm_fault *)'} [-Wincompatible-pointer-types]
  655 |     .page_mkwrite = uvm_vm_fault_entry,
      |                     ^~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm.c:655:21: note: (near initialization for 'uvm_vm_ops_managed.page_mkwrite')
nvidia-uvm/uvm.c:626:19: note: 'uvm_vm_fault_entry' declared here
  626 | static vm_fault_t uvm_vm_fault_entry(struct vm_area_struct *vma, struct vm_fault *vmf)
      |                   ^~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm.c:750:21: error: initialization of 'vm_fault_t (*)(struct vm_fault *)' {aka 'unsigned int (*)(struct vm_fault *)'} from incompatible pointer type 'vm_fault_t (*)(struct vm_area_struct *, struct vm_fault *)' {aka 'int (*)(struct vm_area_struct *, struct vm_fault *)'} [-Wincompatible-pointer-types]
  750 |     .fault        = uvm_vm_fault_sigbus_entry,
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm.c:750:21: note: (near initialization for 'uvm_vm_ops_semaphore_pool.fault')
nvidia-uvm/uvm.c:377:19: note: 'uvm_vm_fault_sigbus_entry' declared here
  377 | static vm_fault_t uvm_vm_fault_sigbus_entry(struct vm_area_struct *vma, struct vm_fault *vmf)
      |                   ^~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm.o] Error 1
  CC [M]  nvidia-uvm/uvm_range_allocator.o
././common/inc/nv-linux.h: In function 'nv_vmalloc':
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_range_tree.h:27,
                 from nvidia-uvm/uvm_range_allocator.h:27,
                 from nvidia-uvm/uvm_range_allocator.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from nvidia-uvm/uvm_api.h:31:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-list-helpers.h:27,
                 from nvidia-uvm/uvm_rb_tree.h:32,
                 from nvidia-uvm/uvm_rb_tree.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
././common/inc/nv-linux.h: In function 'nv_vmalloc':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_rb_tree.o] Error 1
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
  CC [M]  nvidia-uvm/uvm_va_range.o
nvidia-uvm/uvm_tools.c: At top level:
nvidia-uvm/uvm_tools.c:2317:5: warning: no previous prototype for 'uvm_tools_init' [-Wmissing-prototypes]
 2317 | int uvm_tools_init(dev_t uvm_base_dev)
      |     ^~~~~~~~~~~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
nvidia-uvm/uvm_tools.c:2378:6: warning: no previous prototype for 'uvm_tools_exit' [-Wmissing-prototypes]
 2378 | void uvm_tools_exit(void)
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_va_range.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
cc1: some warnings being treated as errors
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_tools.o] Error 1
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
  CC [M]  nvidia-uvm/uvm_va_policy.o
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_va_policy.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
cc1: some warnings being treated as errors
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_global.o] Error 1
  CC [M]  nvidia-uvm/uvm_va_block.o
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_va_block.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from nvidia-uvm/uvm_api.h:31:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
././nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././nvidia-uvm/uvm_linux.h: At top level:
././nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
././nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32,
                 from nvidia-uvm/uvm_va_space.h:28,
                 from nvidia-uvm/uvm_va_space_mm.c:26:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from nvidia-uvm/uvm_api.h:31:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
In file included from nvidia-uvm/uvm_api.h:31,
                 from nvidia-uvm/uvm_gpu.c:25:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
cc1: some warnings being treated as errors
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_va_space_mm.o] Error 1
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
  CC [M]  nvidia-uvm/uvm_range_group.o
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_procfs.o] Error 1
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
  CC [M]  nvidia-uvm/uvm_gpu_replayable_faults.o
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_range_tree.h:27,
                 from nvidia-uvm/uvm_range_group.h:28,
                 from nvidia-uvm/uvm_range_group.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from ././nvidia-uvm/uvm_linux.h:37,
                 from ././common/inc/nv_uvm_interface.h:37,
                 from nvidia-uvm/uvm_gpu_replayable_faults.c:25:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
In file included from ././common/inc/nv-procfs.h:26,
                 from nvidia-uvm/uvm_procfs.h:30,
                 from nvidia-uvm/uvm_gpu.c:31:
nvidia-uvm/uvm_gpu.c: In function 'init_parent_procfs_files':
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia-uvm/uvm_gpu.c:756:43: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  756 |     parent_gpu->procfs.fault_stats_file = NV_CREATE_PROC_FILE("fault_stats",
      |                                           ^~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/efi.h:19,
                 from ././common/inc/nv-linux.h:220:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia-uvm/uvm_gpu.c:763:47: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  763 |     parent_gpu->procfs.access_counters_file = NV_CREATE_PROC_FILE("access_counters",
      |                                               ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
nvidia-uvm/uvm_gpu.c: In function 'init_procfs_files':
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia-uvm/uvm_gpu.c:834:29: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  834 |     gpu->procfs.info_file = NV_CREATE_PROC_FILE("info", gpu->procfs.dir, gpu_info_entry, gpu);
      |                             ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_va_space.o] Error 1
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_gpu_semaphore.c: At top level:
nvidia-uvm/uvm_gpu_semaphore.c:510:6: warning: no previous prototype for 'tracking_semaphore_uses_mutex' [-Wmissing-prototypes]
  510 | bool tracking_semaphore_uses_mutex(uvm_gpu_tracking_semaphore_t *tracking_semaphore)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  CC [M]  nvidia-uvm/uvm_gpu_non_replayable_faults.o
cc1: some warnings being treated as errors
nvidia-uvm/uvm_gpu.c: At top level:
nvidia-uvm/uvm_gpu.c:1884:12: warning: no previous prototype for 'uvm_gpu_get_by_parent_and_swizz_id_locked' [-Wmissing-prototypes]
 1884 | uvm_gpu_t *uvm_gpu_get_by_parent_and_swizz_id_locked(uvm_parent_gpu_t *parent_gpu, NvU32 swizz_id)
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from ././nvidia-uvm/uvm_linux.h:37,
                 from ././common/inc/nv_uvm_interface.h:37,
                 from nvidia-uvm/uvm_gpu_non_replayable_faults.c:23:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_gpu_isr.o] Error 1
nvidia-uvm/uvm_gpu.c: In function 'init_procfs_peer_cap_files':
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia-uvm/uvm_gpu.c:2228:46: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 2228 |     peer_caps->procfs.peer_file[local_idx] = NV_CREATE_PROC_FILE(gpu_dir_name,
      |                                              ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
  CC [M]  nvidia-uvm/uvm_gpu_access_counters.o
cc1: some warnings being treated as errors
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_rm_mem.c:25:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_gpu_semaphore.o] Error 1
  CC [M]  nvidia-uvm/uvm_perf_events.o
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from ././nvidia-uvm/uvm_linux.h:37,
                 from ././common/inc/nv_uvm_interface.h:37,
                 from nvidia-uvm/uvm_gpu_access_counters.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_test.h:27,
                 from nvidia-uvm/uvm_perf_events.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_mem.h:30:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_rm_mem.o] Error 1
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
  CC [M]  nvidia-uvm/uvm_perf_module.o
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_perf_events.h:27,
                 from nvidia-uvm/uvm_perf_module.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
cc1: some warnings being treated as errors
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_gpu.o] Error 1
In file included from ././common/inc/nv-procfs.h:26,
                 from nvidia-uvm/uvm_procfs.h:30,
                 from nvidia-uvm/uvm_channel.c:30:
nvidia-uvm/uvm_channel.c: In function 'manager_create_procfs':
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia-uvm/uvm_channel.c:3575:38: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 3575 |     manager->procfs.pending_pushes = NV_CREATE_PROC_FILE("pending_pushes",
      |                                      ^~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/efi.h:19,
                 from ././common/inc/nv-linux.h:220:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_channel.c: In function 'channel_create_procfs':
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia-uvm/uvm_channel.c:3648:28: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 3648 |     channel->procfs.info = NV_CREATE_PROC_FILE("info", channel->procfs.dir, channel_info_entry, channel);
      |                            ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia-uvm/uvm_channel.c:3652:30: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 3652 |     channel->procfs.pushes = NV_CREATE_PROC_FILE("pushes", channel->procfs.dir, channel_pushes_entry, channel);
      |                              ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
  CC [M]  nvidia-uvm/uvm_mmu.o
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_mmu.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_mem.o] Error 1
  CC [M]  nvidia-uvm/uvm_pte_batch.o
cc1: some warnings being treated as errors
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_range_tree.o] Error 1
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_channel.o] Error 1
  CC [M]  nvidia-uvm/uvm_tlb_batch.o
  CC [M]  nvidia-uvm/uvm_push.o
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_hal_types.h:27,
                 from nvidia-uvm/uvm_pte_batch.h:28,
                 from nvidia-uvm/uvm_pte_batch.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                 from nvidia-uvm/uvm_channel.h:29,
                 from nvidia-uvm/uvm_push.h:29,
                 from nvidia-uvm/uvm_hal.h:31:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_hal_types.h:27,
                 from nvidia-uvm/uvm_tlb_batch.h:28,
                 from nvidia-uvm/uvm_tlb_batch.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_extern_decl.h:27,
                 from nvidia-uvm/uvm_push.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
cc1: some warnings being treated as errors
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_lock.o] Error 1
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
  CC [M]  nvidia-uvm/uvm_pushbuffer.o
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_api.h:28,
                 from nvidia-uvm/uvm_pushbuffer.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
cc1: some warnings being treated as errors
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_hal.o] Error 1
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
  CC [M]  nvidia-uvm/uvm_thread_context.o
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_lock.h:28,
                 from nvidia-uvm/uvm_thread_context.h:28,
                 from nvidia-uvm/uvm_thread_context.c:25:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from nvidia-uvm/uvm_range_allocator.h:28:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from nvidia-uvm/uvm_api.h:31,
                 from nvidia-uvm/uvm_va_range.c:27:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
cc1: some warnings being treated as errors
In file included from ././common/inc/nv-linux.h:34,
                 from ././nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_range_allocator.o] Error 1
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
  CC [M]  nvidia-uvm/uvm_tracker.o
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_tracker.h:29,
                 from nvidia-uvm/uvm_tracker.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from ././nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sort.h:5,
                 from nvidia-uvm/uvm_gpu_replayable_faults.c:24:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
In file included from ././common/inc/nv-linux.h:34,
                 from ././nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sort.h:5,
                 from nvidia-uvm/uvm_gpu_access_counters.c:23:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
cc1: some warnings being treated as errors
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_va_range.o] Error 1
  CC [M]  nvidia-uvm/uvm_maxwell.o
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_hal.h:28,
                 from nvidia-uvm/uvm_maxwell.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from nvidia-uvm/uvm_api.h:31,
                 from nvidia-uvm/uvm_va_block.c:26:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                 from nvidia-uvm/uvm_channel.h:29,
                 from nvidia-uvm/uvm_push.h:29,
                 from nvidia-uvm/uvm_pte_batch.h:29,
                 from nvidia-uvm/uvm_va_block_types.h:28,
                 from nvidia-uvm/uvm_va_policy.h:31,
                 from nvidia-uvm/uvm_va_policy.c:27:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
cc1: some warnings being treated as errors
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_va_policy.o] Error 1
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
  CC [M]  nvidia-uvm/uvm_maxwell_host.o
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_maxwell_host.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././nvidia-uvm/uvm_linux.h: At top level:
././nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
././nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
././common/inc/nv-linux.h: In function 'nv_vmalloc':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from nvidia-uvm/uvm_api.h:31,
                 from nvidia-uvm/uvm_gpu_non_replayable_faults.c:25:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from nvidia-uvm/uvm_range_group.h:30:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
././nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././nvidia-uvm/uvm_linux.h: At top level:
././nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
././nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
cc1: some warnings being treated as errors
././nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
././nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././nvidia-uvm/uvm_linux.h: At top level:
././nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
././nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_gpu_non_replayable_faults.o] Error 1
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
cc1: some warnings being treated as errors
In file included from nvidia-uvm/uvm_perf_events.h:31:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
  CC [M]  nvidia-uvm/uvm_maxwell_ce.o
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_va_block.o] Error 1
  CC [M]  nvidia-uvm/uvm_maxwell_mmu.o
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from nvidia-uvm/uvm_perf_events.h:31,
                 from nvidia-uvm/uvm_perf_events.c:25:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32,
                 from nvidia-uvm/uvm_gpu_replayable_faults.c:28:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_hal.h:28,
                 from nvidia-uvm/uvm_maxwell_ce.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_gpu.h:31,
                 from nvidia-uvm/uvm_maxwell_mmu.c:39:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32,
                 from nvidia-uvm/uvm_gpu_access_counters.c:26:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_range_group.o] Error 1
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
  CC [M]  nvidia-uvm/uvm_maxwell_fault_buffer.o
cc1: some warnings being treated as errors
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_perf_module.o] Error 1
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_mmu.c:27:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                 from nvidia-uvm/uvm_channel.h:29,
                 from nvidia-uvm/uvm_push.h:29,
                 from nvidia-uvm/uvm_push.c:26:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
  CC [M]  nvidia-uvm/uvm_maxwell_access_counter_buffer.o
In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                 from nvidia-uvm/uvm_channel.h:29,
                 from nvidia-uvm/uvm_push.h:29,
                 from nvidia-uvm/uvm_hal.h:31,
                 from nvidia-uvm/uvm_tlb_batch.c:25:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_gpu.h:31,
                 from nvidia-uvm/uvm_maxwell_fault_buffer.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_perf_events.o] Error 1
  CC [M]  nvidia-uvm/uvm_pascal.o
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_gpu.h:31,
                 from nvidia-uvm/uvm_maxwell_access_counter_buffer.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_hal.h:28,
                 from nvidia-uvm/uvm_pascal.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
In file included from nvidia-uvm/uvm_api.h:31:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_push.o] Error 1
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_tlb_batch.o] Error 1
  CC [M]  nvidia-uvm/uvm_pascal_ce.o
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
  CC [M]  nvidia-uvm/uvm_pascal_host.o
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_gpu_replayable_faults.o] Error 1
  CC [M]  nvidia-uvm/uvm_pascal_mmu.o
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_hal.h:28,
                 from nvidia-uvm/uvm_pascal_ce.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
cc1: some warnings being treated as errors
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_pascal_host.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_mmu.c: At top level:
nvidia-uvm/uvm_mmu.c:2290:11: warning: no previous prototype for 'create_static_vidmem_mapping' [-Wmissing-prototypes]
 2290 | NV_STATUS create_static_vidmem_mapping(uvm_gpu_t *gpu)
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_gpu_access_counters.o] Error 1
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_extern_decl.h:27,
                 from nvidia-uvm/uvm_global.h:28,
                 from nvidia-uvm/uvm_pascal_mmu.c:36:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
  CC [M]  nvidia-uvm/uvm_pascal_fault_buffer.o
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_pascal_fault_buffer.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                 from nvidia-uvm/uvm_channel.h:29,
                 from nvidia-uvm/uvm_push.h:29,
                 from nvidia-uvm/uvm_pte_batch.h:29:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-procfs.h:26,
                 from nvidia-uvm/uvm_procfs.h:30,
                 from nvidia-uvm/uvm_pushbuffer.c:29:
nvidia-uvm/uvm_pushbuffer.c: In function 'create_procfs':
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia-uvm/uvm_pushbuffer.c:69:36: note: in expansion of macro 'NV_CREATE_PROC_FILE'
   69 |     pushbuffer->procfs.info_file = NV_CREATE_PROC_FILE("pushbuffer",
      |                                    ^~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/efi.h:19,
                 from ././common/inc/nv-linux.h:220:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
cc1: some warnings being treated as errors
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_mmu.o] Error 1
  CC [M]  nvidia-uvm/uvm_volta_ce.o
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
cc1: some warnings being treated as errors
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_hal.h:28,
                 from nvidia-uvm/uvm_volta_ce.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
cc1: some warnings being treated as errors
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_thread_context.o] Error 1
  CC [M]  nvidia-uvm/uvm_volta_host.o
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_pushbuffer.o] Error 1
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
  CC [M]  nvidia-uvm/uvm_volta_mmu.o
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_volta_host.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
cc1: some warnings being treated as errors
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_pte_batch.o] Error 1
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_extern_decl.h:27,
                 from nvidia-uvm/uvm_global.h:28,
                 from nvidia-uvm/uvm_volta_mmu.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
  CC [M]  nvidia-uvm/uvm_volta.o
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_hal.h:28,
                 from nvidia-uvm/uvm_volta.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                 from nvidia-uvm/uvm_channel.h:29,
                 from nvidia-uvm/uvm_push.h:29,
                 from nvidia-uvm/uvm_tracker.c:25:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
cc1: some warnings being treated as errors
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_tracker.o] Error 1
././common/inc/nv-linux.h: In function 'nv_vmalloc':
  CC [M]  nvidia-uvm/uvm_volta_fault_buffer.o
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_volta_fault_buffer.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                 from nvidia-uvm/uvm_channel.h:29,
                 from nvidia-uvm/uvm_push.h:29,
                 from nvidia-uvm/uvm_hal.h:31:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
cc1: some warnings being treated as errors
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_maxwell.o] Error 1
  CC [M]  nvidia-uvm/uvm_volta_access_counter_buffer.o
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_volta_access_counter_buffer.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32,
                 from nvidia-uvm/uvm_maxwell_host.c:25:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
cc1: some warnings being treated as errors
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_maxwell_host.o] Error 1
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
  CC [M]  nvidia-uvm/uvm_turing.o
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                 from nvidia-uvm/uvm_channel.h:29,
                 from nvidia-uvm/uvm_push.h:29,
                 from nvidia-uvm/uvm_hal.h:31:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_hal.h:28,
                 from nvidia-uvm/uvm_turing.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                 from nvidia-uvm/uvm_channel.h:29,
                 from nvidia-uvm/uvm_push.h:29,
                 from nvidia-uvm/uvm_hal.h:31:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                 from nvidia-uvm/uvm_channel.h:29,
                 from nvidia-uvm/uvm_push.h:29,
                 from nvidia-uvm/uvm_hal.h:31,
                 from nvidia-uvm/uvm_pascal_host.c:26:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
cc1: some warnings being treated as errors
nvidia-uvm/uvm_maxwell_mmu.c: At top level:
nvidia-uvm/uvm_maxwell_mmu.c:359:21: warning: no previous prototype for 'uvm_hal_mmu_mode_maxwell' [-Wmissing-prototypes]
  359 | uvm_mmu_mode_hal_t *uvm_hal_mmu_mode_maxwell(NvU32 big_page_size)
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_maxwell_mmu.c:368:6: warning: no previous prototype for 'uvm_hal_maxwell_mmu_enable_prefetch_faults_unsupported' [-Wmissing-prototypes]
  368 | void uvm_hal_maxwell_mmu_enable_prefetch_faults_unsupported(uvm_parent_gpu_t *parent_gpu)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_pascal.o] Error 1
nvidia-uvm/uvm_maxwell_mmu.c:373:6: warning: no previous prototype for 'uvm_hal_maxwell_mmu_disable_prefetch_faults_unsupported' [-Wmissing-prototypes]
  373 | void uvm_hal_maxwell_mmu_disable_prefetch_faults_unsupported(uvm_parent_gpu_t *parent_gpu)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
nvidia-uvm/uvm_maxwell_mmu.c:378:23: warning: no previous prototype for 'uvm_hal_maxwell_mmu_engine_id_to_type_unsupported' [-Wmissing-prototypes]
  378 | uvm_mmu_engine_type_t uvm_hal_maxwell_mmu_engine_id_to_type_unsupported(NvU16 mmu_engine_id)
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_maxwell_mmu.c:384:7: warning: no previous prototype for 'uvm_hal_maxwell_mmu_client_id_to_utlb_id_unsupported' [-Wmissing-prototypes]
  384 | NvU16 uvm_hal_maxwell_mmu_client_id_to_utlb_id_unsupported(NvU16 client_id)
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
  CC [M]  nvidia-uvm/uvm_turing_access_counter_buffer.o
In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                 from nvidia-uvm/uvm_channel.h:29,
                 from nvidia-uvm/uvm_push.h:29,
                 from nvidia-uvm/uvm_hal.h:31:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
cc1: some warnings being treated as errors
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_turing_access_counter_buffer.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_maxwell_mmu.o] Error 1
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32,
                 from nvidia-uvm/uvm_pascal_fault_buffer.c:25:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
  CC [M]  nvidia-uvm/uvm_turing_fault_buffer.o
cc1: some warnings being treated as errors
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_maxwell_access_counter_buffer.o] Error 1
  CC [M]  nvidia-uvm/uvm_turing_mmu.o
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_turing_fault_buffer.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
cc1: some warnings being treated as errors
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_maxwell_ce.o] Error 1
  CC [M]  nvidia-uvm/uvm_turing_host.o
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_extern_decl.h:27,
                 from nvidia-uvm/uvm_global.h:28,
                 from nvidia-uvm/uvm_turing_mmu.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_hal.h:28,
                 from nvidia-uvm/uvm_turing_host.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
cc1: some warnings being treated as errors
nvidia-uvm/uvm_pascal_fault_buffer.c: At top level:
nvidia-uvm/uvm_pascal_fault_buffer.c:329:6: warning: no previous prototype for 'uvm_hal_pascal_fault_buffer_parse_non_replayable_entry_unsupported' [-Wmissing-prototypes]
  329 | void uvm_hal_pascal_fault_buffer_parse_non_replayable_entry_unsupported(uvm_parent_gpu_t *parent_gpu,
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_maxwell_fault_buffer.o] Error 1
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
cc1: some warnings being treated as errors
  CC [M]  nvidia-uvm/uvm_ampere.o
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_pascal_host.o] Error 1
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_pascal_ce.o] Error 1
  CC [M]  nvidia-uvm/uvm_ampere_ce.o
  CC [M]  nvidia-uvm/uvm_ampere_host.o
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_pascal_fault_buffer.o] Error 1
  CC [M]  nvidia-uvm/uvm_ampere_mmu.o
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_extern_decl.h:27,
                 from nvidia-uvm/uvm_global.h:28,
                 from nvidia-uvm/uvm_ampere.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_hal.h:28,
                 from nvidia-uvm/uvm_ampere_ce.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_hal.h:28,
                 from nvidia-uvm/uvm_ampere_host.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_extern_decl.h:27,
                 from nvidia-uvm/uvm_global.h:28,
                 from nvidia-uvm/uvm_ampere_mmu.c:34:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_volta_mmu.o] Error 1
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
  CC [M]  nvidia-uvm/uvm_hopper.o
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32,
                 from nvidia-uvm/uvm_volta_host.c:25:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_extern_decl.h:27,
                 from nvidia-uvm/uvm_global.h:28,
                 from nvidia-uvm/uvm_hopper.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
nvidia-uvm/uvm_pascal_mmu.c: At top level:
nvidia-uvm/uvm_pascal_mmu.c:364:21: warning: no previous prototype for 'uvm_hal_mmu_mode_pascal' [-Wmissing-prototypes]
  364 | uvm_mmu_mode_hal_t *uvm_hal_mmu_mode_pascal(NvU32 big_page_size)
      |                     ^~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_pascal_mmu.c:376:6: warning: no previous prototype for 'uvm_hal_pascal_mmu_enable_prefetch_faults' [-Wmissing-prototypes]
  376 | void uvm_hal_pascal_mmu_enable_prefetch_faults(uvm_parent_gpu_t *parent_gpu)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_pascal_mmu.c:388:6: warning: no previous prototype for 'uvm_hal_pascal_mmu_disable_prefetch_faults' [-Wmissing-prototypes]
  388 | void uvm_hal_pascal_mmu_disable_prefetch_faults(uvm_parent_gpu_t *parent_gpu)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_pascal_mmu.c:400:7: warning: no previous prototype for 'uvm_hal_pascal_mmu_client_id_to_utlb_id' [-Wmissing-prototypes]
  400 | NvU16 uvm_hal_pascal_mmu_client_id_to_utlb_id(NvU16 client_id)
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                 from nvidia-uvm/uvm_channel.h:29,
                 from nvidia-uvm/uvm_push.h:29,
                 from nvidia-uvm/uvm_hal.h:31:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_pascal_mmu.o] Error 1
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
  CC [M]  nvidia-uvm/uvm_hopper_fault_buffer.o
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_hal_types.h:27,
                 from nvidia-uvm/uvm_hopper_fault_buffer.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
cc1: some warnings being treated as errors
cc1: some warnings being treated as errors
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_volta_ce.o] Error 1
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_volta_host.o] Error 1
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
  CC [M]  nvidia-uvm/uvm_hopper_ce.o
  CC [M]  nvidia-uvm/uvm_hopper_host.o
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_hal.h:28,
                 from nvidia-uvm/uvm_hopper_host.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_hal.h:28,
                 from nvidia-uvm/uvm_hopper_ce.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                 from nvidia-uvm/uvm_channel.h:29,
                 from nvidia-uvm/uvm_push.h:29,
                 from nvidia-uvm/uvm_hal.h:31:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32,
                 from nvidia-uvm/uvm_volta_fault_buffer.c:25:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
cc1: some warnings being treated as errors
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_volta.o] Error 1
  CC [M]  nvidia-uvm/uvm_hopper_mmu.o
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_extern_decl.h:27,
                 from nvidia-uvm/uvm_global.h:28,
                 from nvidia-uvm/uvm_hopper_mmu.c:35:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_volta_fault_buffer.o] Error 1
  CC [M]  nvidia-uvm/uvm_ada.o
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_extern_decl.h:27,
                 from nvidia-uvm/uvm_global.h:28,
                 from nvidia-uvm/uvm_ada.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32,
                 from nvidia-uvm/uvm_volta_access_counter_buffer.c:25:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_volta_access_counter_buffer.o] Error 1
  CC [M]  nvidia-uvm/uvm_policy.o
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_processors.h:27,
                 from nvidia-uvm/uvm_va_space.h:27,
                 from nvidia-uvm/uvm_policy.c:25:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                 from nvidia-uvm/uvm_channel.h:29,
                 from nvidia-uvm/uvm_push.h:29,
                 from nvidia-uvm/uvm_hal.h:31:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
cc1: some warnings being treated as errors
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_turing.o] Error 1
  CC [M]  nvidia-uvm/uvm_perf_utils.o
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_perf_utils.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                 from nvidia-uvm/uvm_channel.h:29,
                 from nvidia-uvm/uvm_push.h:29,
                 from nvidia-uvm/uvm_hal.h:31:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_ampere.o] Error 1
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
  CC [M]  nvidia-uvm/uvm_kvmalloc.o
In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                 from nvidia-uvm/uvm_channel.h:29,
                 from nvidia-uvm/uvm_push.h:29,
                 from nvidia-uvm/uvm_hal.h:31:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32,
                 from nvidia-uvm/uvm_turing_fault_buffer.c:25:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_ampere_mmu.o] Error 1
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
  CC [M]  nvidia-uvm/uvm_pmm_sysmem.o
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_kvmalloc.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                 from nvidia-uvm/uvm_channel.h:29,
                 from nvidia-uvm/uvm_push.h:29,
                 from nvidia-uvm/uvm_hal.h:31:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_gpu.h:31,
                 from nvidia-uvm/uvm_pmm_sysmem.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_turing_mmu.o] Error 1
nvidia-uvm/uvm_hopper_fault_buffer.c:30:6: warning: no previous prototype for 'uvm_hal_hopper_fault_buffer_get_ve_id' [-Wmissing-prototypes]
   30 | NvU8 uvm_hal_hopper_fault_buffer_get_ve_id(NvU16 mmu_engine_id, uvm_mmu_engine_type_t mmu_engine_type)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
  CC [M]  nvidia-uvm/uvm_pmm_gpu.o
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_hopper.o] Error 1
cc1: some warnings being treated as errors
cc1: some warnings being treated as errors
  CC [M]  nvidia-uvm/uvm_migrate.o
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32,
                 from nvidia-uvm/uvm_turing_access_counter_buffer.c:25:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_turing_fault_buffer.o] Error 1
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_hopper_fault_buffer.o] Error 1
  CC [M]  nvidia-uvm/uvm_populate_pageable.o
cc1: some warnings being treated as errors
  CC [M]  nvidia-uvm/uvm_migrate_pageable.o
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_pmm_gpu.c:162:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_turing_host.o] Error 1
cc1: some warnings being treated as errors
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_migrate.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
  CC [M]  nvidia-uvm/uvm_map_external.o
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_ampere_ce.o] Error 1
  CC [M]  nvidia-uvm/uvm_user_channel.o
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_populate_pageable.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_map_external.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_user_channel.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_migrate_pageable.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
cc1: some warnings being treated as errors
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_ampere_host.o] Error 1
  CC [M]  nvidia-uvm/uvm_hmm.o
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_turing_access_counter_buffer.o] Error 1
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_va_block_types.h:27,
                 from nvidia-uvm/uvm_hmm.h:29,
                 from nvidia-uvm/uvm_hmm.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
  CC [M]  nvidia-uvm/uvm_perf_heuristics.o
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_perf_heuristics.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                 from nvidia-uvm/uvm_channel.h:29,
                 from nvidia-uvm/uvm_push.h:29,
                 from nvidia-uvm/uvm_hal.h:31:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                 from nvidia-uvm/uvm_channel.h:29,
                 from nvidia-uvm/uvm_push.h:29,
                 from nvidia-uvm/uvm_hal.h:31:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_hopper_mmu.o] Error 1
cc1: some warnings being treated as errors
  CC [M]  nvidia-uvm/uvm_perf_thrashing.o
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_hopper_ce.o] Error 1
  CC [M]  nvidia-uvm/uvm_perf_prefetch.o
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_api.h:28,
                 from nvidia-uvm/uvm_perf_thrashing.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_perf_prefetch.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_hopper_host.o] Error 1
  CC [M]  nvidia-uvm/uvm_ats.o
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_processors.h:27,
                 from nvidia-uvm/uvm_va_space.h:27,
                 from nvidia-uvm/uvm_ats.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_ada.o] Error 1
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
  CC [M]  nvidia-uvm/uvm_ats_ibm.o
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_api.h:28,
                 from nvidia-uvm/uvm_ats_ibm.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32,
                 from nvidia-uvm/uvm_va_space.h:28:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
cc1: some warnings being treated as errors
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_policy.o] Error 1
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
  CC [M]  nvidia-uvm/uvm_ats_faults.o
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_api.h:28,
                 from nvidia-uvm/uvm_ats_faults.c:23:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32,
                 from nvidia-uvm/uvm_kvmalloc.c:26:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_vmap':
nvidia-uvm/uvm_linux.h: At top level:
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
cc1: some warnings being treated as errors
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_perf_utils.o] Error 1
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
  CC [M]  nvidia-uvm/uvm_test.o
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_api.h:28,
                 from nvidia-uvm/uvm_test.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
cc1: some warnings being treated as errors
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_kvmalloc.o] Error 1
  CC [M]  nvidia-uvm/uvm_test_rng.o
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
In file included from nvidia-uvm/uvm_map_external.c:27:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_test_rng.h:28,
                 from nvidia-uvm/uvm_test_rng.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32,
                 from nvidia-uvm/uvm_migrate.c:27:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from nvidia-uvm/uvm_populate_pageable.c:27:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from nvidia-uvm/uvm_api.h:31,
                 from nvidia-uvm/uvm_pmm_gpu.c:164:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_migrate_pageable.c:26:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_map_external.c: In function 'uvm_pte_buffer_init':
nvidia-uvm/uvm_map_external.c:104:42: warning: implicit conversion from 'UvmGpuCachingType' to 'UvmRmGpuCachingType' [-Wenum-conversion]
  104 |     pte_buffer->mapping_info.cachingType = map_rm_params->caching_type;
      |                                          ^
nvidia-uvm/uvm_map_external.c:105:42: warning: implicit conversion from 'UvmGpuMappingType' to 'UvmRmGpuMappingType' [-Wenum-conversion]
  105 |     pte_buffer->mapping_info.mappingType = map_rm_params->mapping_type;
      |                                          ^
nvidia-uvm/uvm_map_external.c:106:41: warning: implicit conversion from 'UvmGpuFormatType' to 'UvmRmGpuFormatType' [-Wenum-conversion]
  106 |     pte_buffer->mapping_info.formatType = map_rm_params->format_type;
      |                                         ^
nvidia-uvm/uvm_map_external.c:107:42: warning: implicit conversion from 'UvmGpuFormatElementBits' to 'UvmRmGpuFormatElementBits' [-Wenum-conversion]
  107 |     pte_buffer->mapping_info.elementBits = map_rm_params->element_bits;
      |                                          ^
nvidia-uvm/uvm_map_external.c:108:46: warning: implicit conversion from 'UvmGpuCompressionType' to 'UvmRmGpuCompressionType' [-Wenum-conversion]
  108 |     pte_buffer->mapping_info.compressionType = map_rm_params->compression_type;
      |                                              ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                 from nvidia-uvm/uvm_channel.h:29,
                 from nvidia-uvm/uvm_push.h:29,
                 from nvidia-uvm/uvm_pte_batch.h:29,
                 from nvidia-uvm/uvm_va_block_types.h:28:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
nvidia-uvm/uvm_pmm_sysmem.c: In function 'uvm_pmm_sysmem_mappings_split_gpu_mappings':
nvidia-uvm/uvm_pmm_sysmem.c:294:13: error: implicit declaration of function 'NV_RADIX_TREE_REPLACE_SLOT'; did you mean 'NV_RADIX_TREE_REPLACE_SLOT_PRESENT'? [-Wimplicit-function-declaration]
  294 |             NV_RADIX_TREE_REPLACE_SLOT(&sysmem_mappings->reverse_map_tree, slot, new_reverse_maps[subregion - 1]);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~
      |             NV_RADIX_TREE_REPLACE_SLOT_PRESENT
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32,
                 from nvidia-uvm/uvm_va_space.h:28,
                 from nvidia-uvm/uvm_user_channel.c:26:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_migrate.o] Error 1
  CC [M]  nvidia-uvm/uvm_range_tree_test.o
cc1: some warnings being treated as errors
nvidia-uvm/uvm_populate_pageable.c: At top level:
nvidia-uvm/uvm_populate_pageable.c:56:11: warning: no previous prototype for 'uvm_handle_fault' [-Wmissing-prototypes]
   56 | NV_STATUS uvm_handle_fault(struct vm_area_struct *vma, unsigned long start, unsigned long vma_num_pages, bool write)
      |           ^~~~~~~~~~~~~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_range_tree_test.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_map_external.o] Error 1
  CC [M]  nvidia-uvm/uvm_range_allocator_test.o
cc1: some warnings being treated as errors
In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                 from nvidia-uvm/uvm_channel.h:29,
                 from nvidia-uvm/uvm_push.h:29,
                 from nvidia-uvm/uvm_pte_batch.h:29,
                 from nvidia-uvm/uvm_va_block_types.h:28,
                 from nvidia-uvm/uvm_perf_thrashing.h:31,
                 from nvidia-uvm/uvm_perf_heuristics.c:26:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_hmm.o] Error 1
cc1: some warnings being treated as errors
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
  CC [M]  nvidia-uvm/uvm_gpu_semaphore_test.o
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_populate_pageable.o] Error 1
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
  CC [M]  nvidia-uvm/uvm_mem_test.o
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_range_allocator_test.c:25:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
cc1: some warnings being treated as errors
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
nvidia-uvm/uvm_migrate_pageable.c: At top level:
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_migrate_pageable.c:510:6: warning: no previous prototype for 'migrate_vma_cleanup_pages' [-Wmissing-prototypes]
  510 | void migrate_vma_cleanup_pages(unsigned long *dst, unsigned long npages)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_extern_decl.h:27,
                 from nvidia-uvm/uvm_global.h:28,
                 from nvidia-uvm/uvm_gpu_semaphore_test.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
nvidia-uvm/uvm_migrate_pageable.c:556:6: warning: no previous prototype for 'uvm_migrate_vma_alloc_and_copy_helper' [-Wmissing-prototypes]
  556 | void uvm_migrate_vma_alloc_and_copy_helper(struct vm_area_struct *vma,
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_migrate_pageable.c:645:6: warning: no previous prototype for 'uvm_migrate_vma_finalize_and_map_helper' [-Wmissing-prototypes]
  645 | void uvm_migrate_vma_finalize_and_map_helper(struct vm_area_struct *vma,
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_pmm_sysmem.o] Error 1
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
  CC [M]  nvidia-uvm/uvm_rm_mem_test.o
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_hal.h:28,
                 from nvidia-uvm/uvm_mem_test.c:23:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_processors.h:27,
                 from nvidia-uvm/uvm_rm_mem.h:28,
                 from nvidia-uvm/uvm_rm_mem_test.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
cc1: some warnings being treated as errors
In file included from nvidia-uvm/uvm_perf_events.h:31,
                 from nvidia-uvm/uvm_perf_prefetch.c:25:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_migrate_pageable.o] Error 1
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
  CC [M]  nvidia-uvm/uvm_page_tree_test.o
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
cc1: some warnings being treated as errors
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_perf_heuristics.o] Error 1
  CC [M]  nvidia-uvm/uvm_tracker_test.o
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_test.h:27,
                 from nvidia-uvm/uvm_page_tree_test.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_lock.h:28,
                 from nvidia-uvm/uvm_gpu_semaphore.h:28,
                 from nvidia-uvm/uvm_channel.h:29,
                 from nvidia-uvm/uvm_tracker_test.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_user_channel.o] Error 1
  CC [M]  nvidia-uvm/uvm_push_test.o
In file included from nvidia-uvm/uvm_api.h:31:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
cc1: some warnings being treated as errors
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32,
                 from nvidia-uvm/uvm_va_space.h:28:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_pmm_gpu.o] Error 1
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_extern_decl.h:27,
                 from nvidia-uvm/uvm_global.h:28,
                 from nvidia-uvm/uvm_push_test.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
  CC [M]  nvidia-uvm/uvm_channel_test.o
cc1: some warnings being treated as errors
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_extern_decl.h:27,
                 from nvidia-uvm/uvm_global.h:28,
                 from nvidia-uvm/uvm_channel_test.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_perf_prefetch.o] Error 1
  CC [M]  nvidia-uvm/uvm_ce_test.o
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_lock.h:28,
                 from nvidia-uvm/uvm_gpu_semaphore.h:28,
                 from nvidia-uvm/uvm_channel.h:29,
                 from nvidia-uvm/uvm_ce_test.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-procfs.h:26,
                 from nvidia-uvm/uvm_procfs.h:30,
                 from nvidia-uvm/uvm_perf_thrashing.c:34:
nvidia-uvm/uvm_perf_thrashing.c: In function 'cpu_thrashing_stats_init':
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia-uvm/uvm_perf_thrashing.c:450:45: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  450 |         g_cpu_thrashing_stats.procfs_file = NV_CREATE_PROC_FILE(THRASHING_STATS_FILE_NAME,
      |                                             ^~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/efi.h:19,
                 from ././common/inc/nv-linux.h:220:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_perf_thrashing.c: In function 'gpu_thrashing_stats_create':
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia-uvm/uvm_perf_thrashing.c:505:34: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  505 |     gpu_thrashing->procfs_file = NV_CREATE_PROC_FILE(THRASHING_STATS_FILE_NAME,
      |                                  ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
cc1: some warnings being treated as errors
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_ats.o] Error 1
  CC [M]  nvidia-uvm/uvm_host_test.o
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_extern_decl.h:27,
                 from nvidia-uvm/uvm_global.h:28,
                 from nvidia-uvm/uvm_host_test.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
cc1: some warnings being treated as errors
In file included from nvidia-uvm/uvm_api.h:31:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_perf_thrashing.o] Error 1
  CC [M]  nvidia-uvm/uvm_lock_test.o
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_test.h:27,
                 from nvidia-uvm/uvm_lock_test.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_ats_ibm.o] Error 1
  CC [M]  nvidia-uvm/uvm_perf_utils_test.o
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_perf_utils.h:27,
                 from nvidia-uvm/uvm_perf_utils_test.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kasan-checks.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/asm-generic/rwonce.h:26,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/generated/asm/rwonce.h:1,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/compiler.h:344,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/atomic.h:5,
                 from nvidia-uvm/uvm_push_test.c:24:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from nvidia-uvm/uvm_api.h:31:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
In file included from nvidia-uvm/uvm_api.h:31:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
cc1: some warnings being treated as errors
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_ats_faults.o] Error 1
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
  CC [M]  nvidia-uvm/uvm_kvmalloc_test.o
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_test_rng.o] Error 1
  CC [M]  nvidia-uvm/uvm_pmm_test.o
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_kvmalloc_test.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_pmm_test.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
cc1: some warnings being treated as errors
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_test.o] Error 1
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
  CC [M]  nvidia-uvm/uvm_pmm_sysmem_test.o
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_test.h:27,
                 from nvidia-uvm/uvm_pmm_sysmem_test.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32,
                 from nvidia-uvm/uvm_va_space.h:28,
                 from nvidia-uvm/uvm_rm_mem_test.c:27:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
cc1: some warnings being treated as errors
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_range_tree_test.o] Error 1
  CC [M]  nvidia-uvm/uvm_perf_events_test.o
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
In file included from nvidia-uvm/uvm_range_allocator.h:28,
                 from nvidia-uvm/uvm_range_allocator_test.c:26:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_perf_events.h:27,
                 from nvidia-uvm/uvm_perf_events_test.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from nvidia-uvm/uvm_gpu_semaphore.h:28,
                 from nvidia-uvm/uvm_channel.h:29,
                 from nvidia-uvm/uvm_push.h:29,
                 from nvidia-uvm/uvm_hal.h:31:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
cc1: some warnings being treated as errors
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_range_allocator_test.o] Error 1
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
  CC [M]  nvidia-uvm/uvm_perf_module_test.o
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
cc1: some warnings being treated as errors
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_gpu_semaphore_test.o] Error 1
  CC [M]  nvidia-uvm/uvm_get_rm_ptes_test.o
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_kvmalloc.h:27,
                 from nvidia-uvm/uvm_perf_module_test.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_rm_mem_test.o] Error 1
  CC [M]  nvidia-uvm/uvm_fault_buffer_flush_test.o
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_page_tree_test.c:26:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_fault_buffer_flush_test.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_test.h:27,
                 from nvidia-uvm/uvm_get_rm_ptes_test.c:23:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
nvidia-uvm/uvm_channel_test.c: At top level:
nvidia-uvm/uvm_channel_test.c:687:11: warning: no previous prototype for 'test_conf_computing_channel_selection' [-Wmissing-prototypes]
  687 | NV_STATUS test_conf_computing_channel_selection(uvm_va_space_t *va_space)
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_channel_test.c:749:11: warning: no previous prototype for 'test_write_ctrl_gpfifo_noop' [-Wmissing-prototypes]
  749 | NV_STATUS test_write_ctrl_gpfifo_noop(uvm_va_space_t *va_space)
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_channel_test.c:788:11: warning: no previous prototype for 'test_write_ctrl_gpfifo_and_pushes' [-Wmissing-prototypes]
  788 | NV_STATUS test_write_ctrl_gpfifo_and_pushes(uvm_va_space_t *va_space)
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_channel_test.c:836:11: warning: no previous prototype for 'test_write_ctrl_gpfifo_tight' [-Wmissing-prototypes]
  836 | NV_STATUS test_write_ctrl_gpfifo_tight(uvm_va_space_t *va_space)
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_mem_test.o] Error 1
  CC [M]  nvidia-uvm/uvm_peer_identity_mappings_test.o
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
cc1: some warnings being treated as errors
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_test.h:27,
                 from nvidia-uvm/uvm_peer_identity_mappings_test.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_channel_test.o] Error 1
  CC [M]  nvidia-uvm/uvm_va_block_test.o
cc1: some warnings being treated as errors
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_va_block_test.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_push_test.o] Error 1
  CC [M]  nvidia-uvm/uvm_range_group_tree_test.o
cc1: some warnings being treated as errors
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_tracker_test.o] Error 1
  CC [M]  nvidia-uvm/uvm_thread_context_test.o
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_test.h:27,
                 from nvidia-uvm/uvm_range_group_tree_test.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from nvidia-uvm/uvm_lock_test.c:25:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_page_tree_test.c: At top level:
nvidia-uvm/uvm_page_tree_test.c:1514:8: warning: no previous prototype for 'get_page_sizes' [-Wmissing-prototypes]
 1514 | size_t get_page_sizes(uvm_gpu_t *gpu, NvU32 *page_sizes)
      |        ^~~~~~~~~~~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_api.h:28,
                 from nvidia-uvm/uvm_thread_context_test.c:23:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
cc1: some warnings being treated as errors
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_ce_test.o] Error 1
  CC [M]  nvidia-uvm/uvm_rb_tree_test.o
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-time.h:27,
                 from nvidia-uvm/uvm_linux.h:37,
                 from nvidia-uvm/uvm_common.h:43,
                 from nvidia-uvm/uvm_rb_tree_test.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
cc1: some warnings being treated as errors
cc1: some warnings being treated as errors
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_lock_test.o] Error 1
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_page_tree_test.o] Error 1
  CC [M]  nvidia-modeset/nvidia-modeset-linux.o
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_host_test.o] Error 1
  CC [M]  nvidia-modeset/nv-kthread-q.o
  CC [M]  nvidia-drm/nvidia-drm.o
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/conftest.h:28,
                 from nvidia-drm/nvidia-drm-conftest.h:26,
                 from nvidia-drm/nvidia-drm.h:26,
                 from nvidia-drm/nvidia-drm.c:23:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm.o] Error 1
  CC [M]  nvidia-drm/nvidia-drm-drv.o
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
In file included from ././common/inc/conftest.h:28,
                 from nvidia-drm/nvidia-drm-conftest.h:26,
                 from nvidia-drm/nvidia-drm-drv.c:23:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-drv.o] Error 1
  CC [M]  nvidia-drm/nvidia-drm-utils.o
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from ././common/inc/conftest.h:28,
                 from nvidia-drm/nvidia-drm-conftest.h:26,
                 from nvidia-drm/nvidia-drm-utils.c:23:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-utils.o] Error 1
  CC [M]  nvidia-drm/nvidia-drm-crtc.o
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from nvidia-drm/nvidia-drm-conftest.h:26,
                 from nvidia-drm/nvidia-drm-crtc.c:23:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-crtc.o] Error 1
././common/inc/nv-linux.h: In function 'nv_vmalloc':
  CC [M]  nvidia-drm/nvidia-drm-encoder.o
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from nvidia-drm/nvidia-drm-conftest.h:26,
                 from nvidia-drm/nvidia-drm-encoder.c:23:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-encoder.o] Error 1
  CC [M]  nvidia-drm/nvidia-drm-connector.o
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from nvidia-drm/nvidia-drm-conftest.h:26,
                 from nvidia-drm/nvidia-drm-connector.c:23:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-connector.o] Error 1
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
  CC [M]  nvidia-drm/nvidia-drm-gem.o
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/delay.h:14,
                 from ././common/inc/nv-time.h:29:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from nvidia-uvm/uvm_perf_events.h:31,
                 from nvidia-uvm/uvm_perf_module.h:29,
                 from nvidia-uvm/uvm_va_block.h:32,
                 from nvidia-uvm/uvm_perf_utils_test.c:25:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/interrupt.h:13,
                 from ././common/inc/nv-time.h:30:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-kthread-q.h:33,
                 from nvidia-modeset/nv-kthread-q.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from nvidia-drm/nvidia-drm-conftest.h:26,
                 from nvidia-drm/nvidia-drm-gem.c:23:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-gem.o] Error 1
  CC [M]  nvidia-drm/nvidia-drm-fb.o
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from nvidia-drm/nvidia-drm-conftest.h:26,
                 from nvidia-drm/nvidia-drm-fb.c:23:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-fb.o] Error 1
  CC [M]  nvidia-drm/nvidia-drm-modeset.o
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/conftest.h:28,
                 from nvidia-drm/nvidia-drm-conftest.h:26,
                 from nvidia-drm/nvidia-drm-modeset.c:23:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-modeset.o] Error 1
  CC [M]  nvidia-drm/nvidia-drm-fence.o
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/conftest.h:28,
                 from nvidia-drm/nvidia-drm-conftest.h:26,
                 from nvidia-drm/nvidia-drm-fence.c:23:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-fence.o] Error 1
  CC [M]  nvidia-drm/nvidia-drm-linux.o
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
cc1: some warnings being treated as errors
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_perf_utils_test.o] Error 1
  CC [M]  nvidia-drm/nvidia-drm-helper.o
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
In file included from ././common/inc/conftest.h:28,
                 from nvidia-drm/nvidia-drm-conftest.h:26,
                 from nvidia-drm/nvidia-drm-helper.h:26,
                 from nvidia-drm/nvidia-drm-helper.c:30:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-helper.o] Error 1
cc1: some warnings being treated as errors
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
  CC [M]  nvidia-drm/nv-pci-table.o
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_kvmalloc_test.o] Error 1
  CC [M]  nvidia-drm/nvidia-drm-gem-nvkms-memory.o
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap':
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia-uvm/uvm_linux.h:40:
././common/inc/nv-mm.h: At top level:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from ././common/inc/nv-time.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/sched.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from nvidia-drm/nvidia-drm-conftest.h:26,
                 from nvidia-drm/nvidia-drm-gem-nvkms-memory.c:23:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-gem-nvkms-memory.o] Error 1
  CC [M]  nvidia-drm/nvidia-drm-gem-user-memory.o
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_pmm_test.c:25:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from nvidia-modeset/nvidia-modeset-os-interface.h:40,
                 from nvidia-modeset/nvidia-modeset-linux.c:47:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
In file included from ././common/inc/conftest.h:28,
                 from nvidia-drm/nvidia-drm-conftest.h:26,
                 from nvidia-drm/nvidia-drm-gem-user-memory.c:23:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-gem-user-memory.o] Error 1
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
  CC [M]  nvidia-drm/nvidia-drm-gem-dma-buf.o
In file included from nvidia-modeset/nvidia-modeset-linux.c:54:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stat.h:19,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/module.h:13,
                 from nvidia-modeset/nvidia-modeset-linux.c:24:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mmzone.h:22,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/gfp.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/umh.h:4,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kmod.h:9,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/module.h:17:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/conftest.h:28,
                 from nvidia-drm/nvidia-drm-conftest.h:26,
                 from nvidia-drm/nvidia-drm-gem-dma-buf.c:23:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-gem-dma-buf.o] Error 1
  CC [M]  nvidia-drm/nvidia-drm-format.o
nvidia-modeset/nv-kthread-q.c: In function 'thread_create_on_node':
nvidia-modeset/nv-kthread-q.c:179:5: warning: 'static' is not at beginning of declaration [-Wold-style-declaration]
  179 |     const static unsigned attempts = 3;
      |     ^~~~~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from nvidia-drm/nvidia-drm-conftest.h:26,
                 from nvidia-drm/nvidia-drm-format.c:23:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-modeset/nv-kthread-q.o] Error 1
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-format.o] Error 1
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32,
                 from nvidia-uvm/uvm_pmm_sysmem_test.c:27:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
  CC [M]  nvidia-peermem/nvidia-peermem.o
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_pmm_test.c: At top level:
nvidia-uvm/uvm_pmm_test.c:909:11: warning: no previous prototype for '__test_pmm_async_alloc_type' [-Wmissing-prototypes]
  909 | NV_STATUS __test_pmm_async_alloc_type(uvm_va_space_t *va_space,
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
cc1: some warnings being treated as errors
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_pmm_test.o] Error 1
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
nvidia-modeset/nvidia-modeset-linux.c: In function 'nvkms_get_usec':
nvidia-modeset/nvidia-modeset-linux.c:360:25: error: passing argument 1 of 'ktime_get_real_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  360 |     ktime_get_real_ts64(&ts);
      |                         ^~~
      |                         |
      |                         struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:44:52: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   44 | extern void ktime_get_real_ts64(struct timespec64 *tv);
      |                                 ~~~~~~~~~~~~~~~~~~~^~
nvidia-modeset/nvidia-modeset-linux.c: At top level:
nvidia-modeset/nvidia-modeset-linux.c:1080:24: warning: no previous prototype for 'nvkms_open_common' [-Wmissing-prototypes]
 1080 | struct nvkms_per_open *nvkms_open_common(enum NvKmsClientType type,
      |                        ^~~~~~~~~~~~~~~~~
nvidia-modeset/nvidia-modeset-linux.c:1132:6: warning: no previous prototype for 'nvkms_close_pm_locked' [-Wmissing-prototypes]
 1132 | void nvkms_close_pm_locked(struct nvkms_per_open *popen)
      |      ^~~~~~~~~~~~~~~~~~~~~
nvidia-modeset/nvidia-modeset-linux.c:1195:5: warning: no previous prototype for 'nvkms_ioctl_common' [-Wmissing-prototypes]
 1195 | int nvkms_ioctl_common
      |     ^~~~~~~~~~~~~~~~~~
nvidia-modeset/nvidia-modeset-linux.c: In function 'nvkms_add_proc_file':
nvidia-modeset/nvidia-modeset-linux.c:1359:37: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
 1359 |                                     &nv_procfs_nvkms_proc_fops, file->func);
      |                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                     |
      |                                     const nv_proc_ops_t * {aka const struct file_operations *}
In file included from ././common/inc/nv-procfs-utils.h:29,
                 from ././common/inc/nv-procfs.h:26,
                 from nvidia-modeset/nvidia-modeset-linux.c:52:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-modeset/nvidia-modeset-linux.c: In function 'nvkms_config_file_open':
nvidia-modeset/nvidia-modeset-linux.c:1465:41: error: passing argument 2 of 'kernel_read' makes pointer from integer without a cast [-Wint-conversion]
 1465 |         ssize_t ret = kernel_read(file, read_size,
      |                                         ^~~~~~~~~
      |                                         |
      |                                         size_t {aka long unsigned int}
nvidia-uvm/uvm_pmm_sysmem_test.c: At top level:
nvidia-uvm/uvm_pmm_sysmem_test.c:1070:11: warning: no previous prototype for 'do_test_cpu_chunk_free' [-Wmissing-prototypes]
 1070 | NV_STATUS do_test_cpu_chunk_free(uvm_cpu_chunk_t *chunk, uvm_va_space_t *va_space, uvm_processor_mask_t *test_gpus)
      |           ^~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/compat.h:17,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/ia32.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/elf.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/elf.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/module.h:19:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:3187:43: note: expected 'void *' but argument is of type 'size_t' {aka 'long unsigned int'}
 3187 | extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
      |                                           ^~~~~~
nvidia-modeset/nvidia-modeset-linux.c:1466:41: error: passing argument 3 of 'kernel_read' makes integer from pointer without a cast [-Wint-conversion]
 1466 |                                   *buff + read_size,
      |                                   ~~~~~~^~~~~~~~~~~
      |                                         |
      |                                         char *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:3187:51: note: expected 'size_t' {aka 'long unsigned int'} but argument is of type 'char *'
 3187 | extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
      |                                                   ^~~~~~
nvidia-modeset/nvidia-modeset-linux.c:1467:45: error: passing argument 4 of 'kernel_read' makes pointer from integer without a cast [-Wint-conversion]
 1467 |                                   file_size - read_size);
      |                                   ~~~~~~~~~~^~~~~~~~~~~
      |                                             |
      |                                             size_t {aka long unsigned int}
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:3187:59: note: expected 'loff_t *' {aka 'long long int *'} but argument is of type 'size_t' {aka 'long unsigned int'}
 3187 | extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
      |                                                           ^~~~~~~~
nvidia-uvm/uvm_pmm_sysmem_test.c:1166:11: warning: no previous prototype for 'test_cpu_chunk_free' [-Wmissing-prototypes]
 1166 | NV_STATUS test_cpu_chunk_free(uvm_va_space_t *va_space, uvm_processor_mask_t *test_gpus)
      |           ^~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from nvidia-uvm/uvm_perf_events.h:31,
                 from nvidia-uvm/uvm_perf_module.h:29,
                 from nvidia-uvm/uvm_perf_module_test.c:25:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-modeset/nvidia-modeset-linux.o] Error 1
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
cc1: some warnings being treated as errors
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_pmm_sysmem_test.o] Error 1
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32,
                 from nvidia-uvm/uvm_fault_buffer_flush_test.c:26:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
In file included from nvidia-uvm/uvm_perf_events.h:31:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_vmap':
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
cc1: some warnings being treated as errors
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_perf_module_test.o] Error 1
In file included from nvidia-uvm/uvm_perf_events.h:31,
                 from nvidia-uvm/uvm_perf_module.h:29,
                 from nvidia-uvm/uvm_va_block.h:32,
                 from nvidia-uvm/uvm_va_block_test.c:28:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
In file included from ././common/inc/conftest.h:28,
                 from nvidia-drm/nvidia-drm-conftest.h:26,
                 from nvidia-drm/nvidia-drm-os-interface.h:26,
                 from nvidia-drm/nvidia-drm-linux.c:27:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-drm/nvidia-drm-linux.o] Error 1
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32,
                 from nvidia-uvm/uvm_va_space.h:28,
                 from nvidia-uvm/uvm_range_group_tree_test.c:26:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32,
                 from nvidia-uvm/uvm_get_rm_ptes_test.c:25:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_fault_buffer_flush_test.o] Error 1
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_perf_events_test.o] Error 1
In file included from nvidia-uvm/uvm_pmm_gpu.h:55,
                 from nvidia-uvm/uvm_gpu.h:37,
                 from nvidia-uvm/uvm_global.h:32,
                 from nvidia-uvm/uvm_va_space.h:28,
                 from nvidia-uvm/uvm_peer_identity_mappings_test.c:25:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
cc1: some warnings being treated as errors
In file included from nvidia-uvm/uvm_api.h:31:
nvidia-uvm/uvm_lock.h: In function '__uvm_bit_lock':
nvidia-uvm/uvm_lock.h:1208:11: error: implicit declaration of function 'UVM_WAIT_ON_BIT_LOCK' [-Wimplicit-function-declaration]
 1208 |     res = UVM_WAIT_ON_BIT_LOCK(bit_locks->bits, bit, TASK_UNINTERRUPTIBLE);
      |           ^~~~~~~~~~~~~~~~~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_va_block_test.o] Error 1
nvidia-uvm/uvm_linux.h: In function 'NV_GETTIME':
nvidia-uvm/uvm_linux.h:287:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  287 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia-uvm/uvm_linux.h: At top level:
nvidia-uvm/uvm_linux.h:435:6: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  435 | #if (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 3)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:438:8: error: 'NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  438 | #elif (NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT == 4)
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:449:2: error: #error "Unknown number of arguments"
  449 | #error "Unknown number of arguments"
      |  ^~~~~
nvidia-uvm/uvm_linux.h:478:6: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  478 | #if (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 2)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:481:9: error: 'NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT' is not defined, evaluates to '0' [-Werror=undef]
  481 | #elif  (NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT == 3)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia-uvm/uvm_linux.h:485:2: error: #error "Unknown number of arguments"
  485 | #error "Unknown number of arguments"
      |  ^~~~~
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_rb_tree_test.o] Error 1
cc1: some warnings being treated as errors
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_range_group_tree_test.o] Error 1
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_get_rm_ptes_test.o] Error 1
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_peer_identity_mappings_test.o] Error 1
cc1: some warnings being treated as errors
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-uvm/uvm_thread_context_test.o] Error 1
In file included from ././common/inc/conftest.h:28,
                 from nvidia-peermem/nvidia-peermem.c:39:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia-peermem/nvidia-peermem.o] Error 1
make[4]: Target './' not remade because of errors.
make[3]: *** [/usr/lib/modules/6.14.6-arch1-1/build/Makefile:1997: .] Error 2
make[3]: Target 'modules' not remade because of errors.
make[2]: *** [/usr/lib/modules/6.14.6-arch1-1/build/Makefile:251: __sub-make] Error 2
make[2]: Target 'modules' not remade because of errors.
make[2]: Leaving directory '/tmp/selfgz13746/NVIDIA-Linux-x86_64-535.161.07-grid/kernel'
make[1]: *** [Makefile:251: __sub-make] Error 2
make[1]: Target 'modules' not remade because of errors.
make[1]: Leaving directory '/usr/lib/modules/6.14.6-arch1-1/build'
make: *** [Makefile:82: modules] Error 2
-> Checking to see whether the nvidia kernel module was successfully built
   executing: 'cd ./kernel; /usr/bin/make -k -j16  NV_EXCLUDE_KERNEL_MODULES="" SYSSRC="/lib/modules/6.14.6-arch1-1/build" SYSOUT="/lib/modules/6.14.6-arch1-1/build" NV_KERNEL_MODULES="nvidia"'...
   make[1]: Entering directory '/usr/lib/modules/6.14.6-arch1-1/build'
   make[2]: Entering directory '/tmp/selfgz13746/NVIDIA-Linux-x86_64-535.161.07-grid/kernel'
   warning: the compiler differs from the one used to build the kernel
     The kernel was built by: gcc (GCC) 15.1.1 20250425
     You are using:           cc (GCC) 15.1.1 20250425
     SYMLINK nvidia/nv-kernel.o
     CC [M]  nvidia/nv.o
     CC [M]  nvidia/nv-pci.o
     CC [M]  nvidia/nv-dmabuf.o
     CC [M]  nvidia/nv-nano-timer.o
     CC [M]  nvidia/nv-acpi.o
     CC [M]  nvidia/nv-cray.o
     CC [M]  nvidia/nv-dma.o
     CC [M]  nvidia/nv-i2c.o
     CC [M]  nvidia/nv-mmap.o
     CC [M]  nvidia/nv-p2p.o
     CC [M]  nvidia/nv-pat.o
     CC [M]  nvidia/nv-procfs.o
     CC [M]  nvidia/nv-usermap.o
     CC [M]  nvidia/nv-vm.o
     CC [M]  nvidia/nv-vtophys.o
     CC [M]  nvidia/os-interface.o
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv-dma.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv-cray.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv-acpi.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv-mmap.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv-p2p.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv-usermap.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv-pat.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv-vm.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/os-interface.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv-vtophys.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv-procfs.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv-nano-timer.c:30:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv.c:33:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv-nano-timer.c:31:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/nospec-branch.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/paravirt_types.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/ptrace.h:175,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/math_emu.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/processor.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/timex.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timex.h:67,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time32.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:60,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                    from nvidia/nv-nano-timer.c:27:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kasan-checks.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/asm-generic/rwonce.h:26,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/generated/asm/rwonce.h:1,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/compiler.h:344,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/array_size.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kernel.h:16,
                    from nvidia/nv-nano-timer.c:26:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv-usermap.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv.c:34:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mmzone.h:22,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/gfp.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/umh.h:4,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kmod.h:9,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/module.h:17,
                    from nvidia/nv.c:24:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/nospec-branch.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/paravirt_types.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/ptrace.h:175,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/math_emu.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/processor.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/timex.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timex.h:67,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time32.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:60,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stat.h:19,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/module.h:13:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kasan-checks.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/asm-generic/rwonce.h:26,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/generated/asm/rwonce.h:1,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/compiler.h:344,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/build_bug.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/container_of.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/list.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/module.h:12:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv-pat.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv-mmap.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv-procfs.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-pci-types.h:28,
                    from nvidia/nv-pci.c:25:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/nv.h:41,
                    from ././common/inc/nv-linux.h:28,
                    from ././common/inc/nv-dmabuf.h:27,
                    from nvidia/nv-dmabuf.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from ././common/inc/nv-pci.h:28,
                    from nvidia/nv-pci.c:26:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mmzone.h:22,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/gfp.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/xarray.h:16,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/radix-tree.h:21,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/idr.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kernfs.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sysfs.h:16,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kobject.h:20,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/pci.h:35,
                    from nvidia/nv-pci-table.h:27,
                    from nvidia/nv-pci.c:24:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mutex.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kernfs.h:11:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   In file included from ././common/inc/nv-linux.h:34:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/scatterlist.h:8,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/dmapool.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/pci.h:1662:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/mei_uuid.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/mei.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mod_devicetable.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/pci.h:27:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mmzone.h:22,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/gfp.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/scatterlist.h:8,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/dma-buf.h:19,
                    from nvidia/nv-dmabuf.c:23:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/nospec-branch.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/irqflags.h:9,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/irqflags.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/special_insns.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/io.h:45,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/io.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/iosys-map.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/dma-buf.h:16:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/io.h:10:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv-vm.c:26:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from nvidia/nv-vm.c:25:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv-p2p.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv-cray.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/os-interface.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv-dma.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv-acpi.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv-vtophys.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv-i2c.c:28:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv-i2c.c:29:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mmzone.h:22,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/gfp.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/slab.h:16,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/resource_ext.h:11,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/acpi.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/i2c.h:13,
                    from nvidia/nv-i2c.c:26:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mmzone.h:8:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/memcontrol.h:21,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/swap.h:9,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/suspend.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/regulator/consumer.h:35,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/i2c.h:19:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kasan-checks.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/asm-generic/rwonce.h:26,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/generated/asm/rwonce.h:1,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/compiler.h:344,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/build_bug.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/bits.h:22,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ioport.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/acpi.h:12:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   nvidia/nv-nano-timer.c: In function 'nv_alloc_nano_timer':
   ././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     595 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv-nano-timer.c:86:5: note: in expansion of macro 'NV_KMALLOC'
      86 |     NV_KMALLOC(nv_nstimer, sizeof(nv_nano_timer_t));
         |     ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/sound/hdaudio.h:18,
                    from nvidia/nv.c:70:
   /usr/lib/modules/6.14.6-arch1-1/build/include/sound/pcm.h: In function 'snd_pcm_gettime':
   /usr/lib/modules/6.14.6-arch1-1/build/include/sound/pcm.h:1292:32: error: passing argument 1 of 'ktime_get_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
    1292 |                 ktime_get_ts64(tv);
         |                                ^~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:43:47: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      43 | extern void ktime_get_ts64(struct timespec64 *ts);
         |                            ~~~~~~~~~~~~~~~~~~~^~
   /usr/lib/modules/6.14.6-arch1-1/build/include/sound/pcm.h:1295:36: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
    1295 |                 ktime_get_raw_ts64(tv);
         |                                    ^~
         |                                    |
         |                                    struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   /usr/lib/modules/6.14.6-arch1-1/build/include/sound/pcm.h:1298:37: error: passing argument 1 of 'ktime_get_real_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
    1298 |                 ktime_get_real_ts64(tv);
         |                                     ^~
         |                                     |
         |                                     struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:44:52: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      44 | extern void ktime_get_real_ts64(struct timespec64 *tv);
         |                                 ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia/nv-pci.c: In function 'nv_pci_probe':
   ././common/inc/nv-linux.h:602:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     602 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv-pci.c:396:5: note: in expansion of macro 'NV_KZALLOC'
     396 |     NV_KZALLOC(nvl, sizeof(nv_linux_state_t));
         |     ^~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   nvidia/nv.c: In function 'nvos_create_alloc':
   ././common/inc/nv-linux.h:602:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     602 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv.c:262:5: note: in expansion of macro 'NV_KZALLOC'
     262 |     NV_KZALLOC(at, sizeof(nv_alloc_t));
         |     ^~~~~~~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-nano-timer.o] Error 1
   nvidia/nv.c: At top level:
   nvidia/nv.c:735:12: warning: no previous prototype for 'nvidia_init_module' [-Wmissing-prototypes]
     735 | int __init nvidia_init_module(void)
         |            ^~~~~~~~~~~~~~~~~~
   nvidia/nv.c:855:6: warning: no previous prototype for 'nvidia_exit_module' [-Wmissing-prototypes]
     855 | void nvidia_exit_module(void)
         |      ^~~~~~~~~~~~~~~~~~
   nvidia/nv.c: In function 'nv_alloc_file_private':
   ././common/inc/nv-linux.h:602:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     602 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv.c:879:5: note: in expansion of macro 'NV_KZALLOC'
     879 |     NV_KZALLOC(nvlfp, sizeof(nv_linux_file_private_t));
         |     ^~~~~~~~~~
   nvidia/nv.c: At top level:
   nvidia/nv.c:1124:23: warning: no previous prototype for 'nv_get_num_dpaux_instances' [-Wmissing-prototypes]
    1124 | NV_STATUS NV_API_CALL nv_get_num_dpaux_instances(nv_state_t *nv, NvU32 *num_instances)
         |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
     CC [M]  nvidia/os-mlock.o
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   nvidia/nv.c: In function 'nvidia_ioctl':
   ././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     595 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv.c:2104:5: note: in expansion of macro 'NV_KMALLOC'
    2104 |     NV_KMALLOC(arg_copy, arg_size);
         |     ^~~~~~~~~~
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     595 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv.c:2165:13: note: in expansion of macro 'NV_KMALLOC'
    2165 |             NV_KMALLOC(nvlfp->attached_gpus, arg_size);
         |             ^~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-usermap.o] Error 1
   nvidia/nv.c: In function 'nv_map_guest_pages':
   ././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     595 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv.c:2805:5: note: in expansion of macro 'NV_KMALLOC'
    2805 |     NV_KMALLOC(pages, sizeof(struct page *) * page_count);
         |     ^~~~~~~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-dmabuf.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
     CC [M]  nvidia/os-pci.o
   nvidia/nv.c: In function 'nv_alloc_kernel_mapping':
   ././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     595 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv.c:3282:13: note: in expansion of macro 'NV_KMALLOC'
    3282 |             NV_KMALLOC(pages, sizeof(struct page *) * page_count);
         |             ^~~~~~~~~~
   nvidia/nv.c: In function 'nv_post_event':
   ././common/inc/nv-linux.h:609:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     609 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv.c:3554:9: note: in expansion of macro 'NV_KMALLOC_ATOMIC'
    3554 |         NV_KMALLOC_ATOMIC(nvet, sizeof(nvidia_event_t));
         |         ^~~~~~~~~~~~~~~~~
     CC [M]  nvidia/os-registry.o
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-pci.o] Error 1
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/os-mlock.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
     CC [M]  nvidia/os-usermap.o
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/os-pci.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/os-registry.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/os-usermap.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-pat.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
     CC [M]  nvidia/nv-modeset-interface.o
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   nvidia/nv-mmap.c: At top level:
   nvidia/nv-mmap.c:299:15: error: initialization of 'vm_fault_t (*)(struct vm_fault *)' {aka 'unsigned int (*)(struct vm_fault *)'} from incompatible pointer type 'vm_fault_t (*)(struct vm_area_struct *, struct vm_fault *)' {aka 'int (*)(struct vm_area_struct *, struct vm_fault *)'} [-Wincompatible-pointer-types]
     299 |     .fault  = nvidia_fault,
         |               ^~~~~~~~~~~~
   nvidia/nv-mmap.c:299:15: note: (near initialization for 'nv_vm_ops.fault')
   nvidia/nv-mmap.c:201:19: note: 'nvidia_fault' declared here
     201 | static vm_fault_t nvidia_fault(
         |                   ^~~~~~~~~~~~
   nvidia/nv-mmap.c:303:5: warning: conflicting types for 'nv_encode_caching' due to enum/integer mismatch; have 'int(pgprot_t *, NvU32,  nv_memory_type_t)' {aka 'int(struct pgprot *, unsigned int,  nv_memory_type_t)'} [-Wenum-int-mismatch]
     303 | int nv_encode_caching(
         |     ^~~~~~~~~~~~~~~~~
   In file included from ././common/inc/nv-linux.h:1761:
   ././common/inc/nv-proto.h:46:13: note: previous declaration of 'nv_encode_caching' with type 'int(pgprot_t *, NvU32,  NvU32)' {aka 'int(struct pgprot *, unsigned int,  unsigned int)'}
      46 | int         nv_encode_caching           (pgprot_t *, NvU32, NvU32);
         |             ^~~~~~~~~~~~~~~~~
   nvidia/nv-mmap.c:371:1: warning: 'static' is not at beginning of declaration [-Wold-style-declaration]
     371 | int static nvidia_mmap_peer_io(
         | ^~~
   nvidia/nv-mmap.c:392:1: warning: 'static' is not at beginning of declaration [-Wold-style-declaration]
     392 | int static nvidia_mmap_sysmem(
         | ^~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv.o] Error 1
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv-modeset-interface.c:26:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   nvidia/nv-procfs.c: In function 'nv_procfs_open_file':
   ././common/inc/nv-linux.h:602:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     602 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv-procfs.c:276:5: note: in expansion of macro 'NV_KZALLOC'
     276 |     NV_KZALLOC(nvpp, sizeof(nv_procfs_private_t));
         |     ^~~~~~~~~~
     CC [M]  nvidia/nv-kthread-q.o
   nvidia/nv-procfs.c: At top level:
   nvidia/nv-procfs.c:698:1: warning: no previous prototype for 'exercise_error_forwarding_va' [-Wmissing-prototypes]
     698 | exercise_error_forwarding_va(
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from ././common/inc/nv-procfs.h:26,
                    from nvidia/nv-procfs.c:31:
   nvidia/nv-procfs.c: In function 'nv_procfs_add_text_file':
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-procfs.c:1312:5: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    1312 |     NV_CREATE_PROC_FILE(filename, parent, text_file, (void *)text);
         |     ^~~~~~~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/efi.h:19,
                    from ././common/inc/nv-linux.h:220:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   nvidia/nv-procfs.c: In function 'nv_procfs_init':
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-procfs.c:1342:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    1342 |     entry = NV_CREATE_PROC_FILE("params", proc_nvidia, params, NULL);
         |             ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-procfs.c:1346:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    1346 |     entry = NV_CREATE_PROC_FILE("registry", proc_nvidia, registry, NULL);
         |             ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-procfs.c:1351:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    1351 |     entry = NV_CREATE_PROC_FILE("suspend_depth", proc_nvidia, suspend_depth, NULL);
         |             ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-procfs.c:1355:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    1355 |     entry = NV_CREATE_PROC_FILE("suspend", proc_nvidia, suspend, NULL);
         |             ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-procfs.c:1377:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    1377 |     entry = NV_CREATE_PROC_FILE("version", proc_nvidia, version, NULL);
         |             ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   nvidia/nv-procfs.c: In function 'nv_procfs_add_gpu':
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-procfs.c:1419:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    1419 |     entry = NV_CREATE_PROC_FILE("information", proc_nvidia_gpu, gpu_info,
         |             ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-procfs.c:1424:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    1424 |     entry = NV_CREATE_PROC_FILE("registry", proc_nvidia_gpu, registry, nv);
         |             ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-procfs.c:1428:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    1428 |     entry = NV_CREATE_PROC_FILE("power", proc_nvidia_gpu, power, nv);
         |             ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-procfs.c:1434:17: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    1434 |         entry = NV_CREATE_PROC_FILE("exercise_error_forwarding", proc_nvidia_gpu,
         |                 ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-procfs.c:1442:17: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    1442 |         entry = NV_CREATE_PROC_FILE("unbindLock", proc_nvidia_gpu, unbind_lock, nv);
         |                 ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-procfs.c:1449:17: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    1449 |         entry = NV_CREATE_PROC_FILE("numa_status", proc_nvidia_gpu, numa_status,
         |                 ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-procfs.c:1454:17: note: in expansion of macro 'NV_CREATE_PROC_FILE'
    1454 |         entry = NV_CREATE_PROC_FILE("offline_pages", proc_nvidia_gpu, offline_pages,
         |                 ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-mmap.o] Error 1
     CC [M]  nvidia/nv-memdbg.o
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-procfs.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/nv.h:41,
                    from ././common/inc/nv-linux.h:28,
                    from nvidia/nv-memdbg.c:25:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
     CC [M]  nvidia/nv-ibmnpu.o
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-i2c.o] Error 1
     CC [M]  nvidia/nv-report-err.o
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/nv.h:41,
                    from ././common/inc/nv-linux.h:28,
                    from nvidia/nv-ibmnpu.c:27:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/nv.h:41,
                    from ././common/inc/nv-linux.h:28,
                    from nvidia/nv-report-err.c:25:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   nvidia/nv-dma.c: At top level:
   nvidia/nv-dma.c:293:6: warning: no previous prototype for 'nv_load_dma_map_scatterlist' [-Wmissing-prototypes]
     293 | void nv_load_dma_map_scatterlist(
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia/nv-dma.c:489:23: warning: no previous prototype for 'nv_dma_unmap_sgt' [-Wmissing-prototypes]
     489 | NV_STATUS NV_API_CALL nv_dma_unmap_sgt(
         |                       ^~~~~~~~~~~~~~~~
   nvidia/os-interface.c: At top level:
   nvidia/os-interface.c:370:7: warning: no previous prototype for 'os_mem_copy_custom' [-Wmissing-prototypes]
     370 | void *os_mem_copy_custom(
         |       ^~~~~~~~~~~~~~~~~~
   nvidia/os-interface.c: In function 'os_alloc_mem':
   ././common/inc/nv-linux.h:609:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     609 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/os-interface.c:584:13: note: in expansion of macro 'NV_KMALLOC_ATOMIC'
     584 |             NV_KMALLOC_ATOMIC(*address, alloc_size);
         |             ^~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:624:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     624 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/os-interface.c:590:13: note: in expansion of macro 'NV_KMALLOC_NO_OOM'
     590 |             NV_KMALLOC_NO_OOM(*address, alloc_size);
         |             ^~~~~~~~~~~~~~~~~
   nvidia/os-interface.c: In function 'os_get_current_time':
   nvidia/os-interface.c:633:25: error: passing argument 1 of 'ktime_get_real_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     633 |     ktime_get_real_ts64(&tm);
         |                         ^~~
         |                         |
         |                         struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:44:52: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      44 | extern void ktime_get_real_ts64(struct timespec64 *tv);
         |                                 ~~~~~~~~~~~~~~~~~~~^~
   nvidia/os-interface.c: In function 'os_get_current_tick_hr':
   nvidia/os-interface.c:647:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     647 |     ktime_get_raw_ts64(&tm);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia/os-interface.c: In function 'os_get_current_tick':
   nvidia/os-interface.c:656:21: error: storage size of 'ts' isn't known
     656 |     struct timespec ts;
         |                     ^~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-dma.o] Error 1
     CC [M]  nvidia/nv-rsync.o
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-cray.o] Error 1
   nvidia/os-interface.c:657:5: error: implicit declaration of function 'jiffies_to_timespec'; did you mean 'jiffies_to_timespec64'? [-Wimplicit-function-declaration]
     657 |     jiffies_to_timespec(jiffies, &ts);
         |     ^~~~~~~~~~~~~~~~~~~
         |     jiffies_to_timespec64
     CC [M]  nvidia/nv-msi.o
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-vtophys.o] Error 1
     CC [M]  nvidia/nv-caps.o
   nvidia/os-interface.c:658:20: error: implicit declaration of function 'timespec_to_ns'; did you mean 'timespec64_to_ns'? [-Wimplicit-function-declaration]
     658 |     return (NvU64) timespec_to_ns(&ts);
         |                    ^~~~~~~~~~~~~~
         |                    timespec64_to_ns
   nvidia/os-interface.c:656:21: warning: unused variable 'ts' [-Wunused-variable]
     656 |     struct timespec ts;
         |                     ^~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-p2p.o] Error 1
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/nv.h:41,
                    from ././common/inc/nv-linux.h:28,
                    from nvidia/nv-rsync.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
     CC [M]  nvidia/nv-frontend.o
   nvidia/os-interface.c: In function 'os_queue_work_item':
   ././common/inc/nv-linux.h:609:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     609 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/os-interface.c:1113:5: note: in expansion of macro 'NV_KMALLOC_ATOMIC'
    1113 |     NV_KMALLOC_ATOMIC(oqd, sizeof(os_queue_data_t));
         |     ^~~~~~~~~~~~~~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/nv.h:41,
                    from ././common/inc/nv-linux.h:28,
                    from ././common/inc/nv-msi.h:27,
                    from nvidia/nv-msi.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   nvidia/nv-vm.c: In function 'nv_set_memory_array_type':
   nvidia/nv-vm.c:92:13: error: implicit declaration of function 'set_memory_array_uc'; did you mean 'set_pages_array_uc'? [-Wimplicit-function-declaration]
      92 |             set_memory_array_uc(pages, num_pages);
         |             ^~~~~~~~~~~~~~~~~~~
         |             set_pages_array_uc
   nvidia/os-interface.c: In function 'os_write_file':
   nvidia/os-interface.c:1792:54: error: passing argument 4 of 'kernel_write' makes pointer from integer without a cast [-Wint-conversion]
    1792 |     num_written = kernel_write(pFile, pBuffer, size, f_pos);
         |                                                      ^~~~~
         |                                                      |
         |                                                      loff_t {aka long long int}
   nvidia/os-interface.c:1792:54: note: possible fix: take the address with '&'
    1792 |     num_written = kernel_write(pFile, pBuffer, size, f_pos);
         |                                                      ^~~~~
         |                                                      &
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/huge_mm.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:1133:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:3189:66: note: expected 'loff_t *' {aka 'long long int *'} but argument is of type 'loff_t' {aka 'long long int'}
    3189 | extern ssize_t kernel_write(struct file *, const void *, size_t, loff_t *);
         |                                                                  ^~~~~~~~
   nvidia/os-interface.c: In function 'os_read_file':
   nvidia/os-interface.c:1832:35: error: passing argument 2 of 'kernel_read' makes pointer from integer without a cast [-Wint-conversion]
    1832 |     num_read = kernel_read(pFile, f_pos, pBuffer, size);
         |                                   ^~~~~
         |                                   |
         |                                   loff_t {aka long long int}
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:3187:43: note: expected 'void *' but argument is of type 'loff_t' {aka 'long long int'}
    3187 | extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
         |                                           ^~~~~~
   nvidia/os-interface.c:1832:42: error: passing argument 3 of 'kernel_read' makes integer from pointer without a cast [-Wint-conversion]
    1832 |     num_read = kernel_read(pFile, f_pos, pBuffer, size);
         |                                          ^~~~~~~
         |                                          |
         |                                          NvU8 * {aka unsigned char *}
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:3187:51: note: expected 'size_t' {aka 'long unsigned int'} but argument is of type 'NvU8 *' {aka 'unsigned char *'}
    3187 | extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
         |                                                   ^~~~~~
   nvidia/os-interface.c:1832:51: error: passing argument 4 of 'kernel_read' makes pointer from integer without a cast [-Wint-conversion]
    1832 |     num_read = kernel_read(pFile, f_pos, pBuffer, size);
         |                                                   ^~~~
         |                                                   |
         |                                                   NvU64 {aka long long unsigned int}
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:3187:59: note: expected 'loff_t *' {aka 'long long int *'} but argument is of type 'NvU64' {aka 'long long unsigned int'}
    3187 | extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
         |                                                           ^~~~~~~~
   nvidia/os-interface.c: In function 'os_alloc_wait_queue':
   ././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     595 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/os-interface.c:1945:5: note: in expansion of macro 'NV_KMALLOC'
    1945 |     NV_KMALLOC(*wq, sizeof(os_wait_queue));
         |     ^~~~~~~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-acpi.o] Error 1
     CC [M]  nvidia/nv_uvm_interface.o
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/nv.h:41,
                    from ././common/inc/nv-linux.h:28,
                    from nvidia/nv-caps.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv-frontend.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/os-interface.h:40,
                    from nvidia/nv_uvm_interface.c:32:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv-kthread-q.h:33,
                    from nvidia/nv-kthread-q.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/os-interface.o] Error 1
     CC [M]  nvidia/libspdm_aead.o
   nvidia/nv-vm.c:95:13: error: implicit declaration of function 'set_memory_array_wb'; did you mean 'set_pages_array_wb'? [-Wimplicit-function-declaration]
      95 |             set_memory_array_wb(pages, num_pages);
         |             ^~~~~~~~~~~~~~~~~~~
         |             set_pages_array_wb
   In file included from ././common/inc/conftest.h:28,
                    from nvidia/internal_crypt_lib.h:32,
                    from nvidia/libspdm_aead.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-vm.o] Error 1
     CC [M]  nvidia/libspdm_hkdf.o
   In file included from ././common/inc/conftest.h:28,
                    from nvidia/internal_crypt_lib.h:32,
                    from nvidia/libspdm_hkdf.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   nvidia/libspdm_aead.c:41:5: warning: no previous prototype for 'libspdm_aead_prealloc' [-Wmissing-prototypes]
      41 | int libspdm_aead_prealloc(void **context, char const *alg)
         |     ^~~~~~~~~~~~~~~~~~~~~
   nvidia/libspdm_aead.c:171:5: warning: no previous prototype for 'libspdm_aead_prealloced' [-Wmissing-prototypes]
     171 | int libspdm_aead_prealloced(void *context,
         |     ^~~~~~~~~~~~~~~~~~~~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/libspdm_aead.o] Error 1
     CC [M]  nvidia/libspdm_shash.o
   In file included from ././common/inc/conftest.h:28,
                    from nvidia/internal_crypt_lib.h:32,
                    from nvidia/libspdm_shash.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/libspdm_hkdf.o] Error 1
     CC [M]  nvidia/nvlink_linux.o
   In file included from ././common/inc/conftest.h:28,
                    from nvidia/nvlink_linux.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/os-mlock.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/os-pci.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/os-usermap.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/libspdm_shash.o] Error 1
     CC [M]  nvidia/linux_nvswitch.o
   nvidia/nv-kthread-q.c: In function 'thread_create_on_node':
   nvidia/nv-kthread-q.c:179:5: warning: 'static' is not at beginning of declaration [-Wold-style-declaration]
     179 |     const static unsigned attempts = 3;
         |     ^~~~~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/nv.h:41,
                    from ././common/inc/nv-linux.h:28,
                    from nvidia/linux_nvswitch.h:28,
                    from nvidia/linux_nvswitch.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:34:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/os-registry.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-kthread-q.o] Error 1
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
     CC [M]  nvidia/procfs_nvswitch.o
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv-modeset-interface.c:27:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/nv.h:41,
                    from ././common/inc/nv-linux.h:28,
                    from nvidia/linux_nvswitch.h:28,
                    from nvidia/procfs_nvswitch.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:34:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv-frontend.c:25:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:34:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   In file included from ././common/inc/nv-linux.h:34:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nv_uvm_interface.c:33:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35,
                    from ././common/inc/nv-linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/os-pci.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
     CC [M]  nvidia/i2c_nvswitch.o
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   nvidia/os-mlock.c: In function 'nv_follow_pfn':
   nvidia/os-mlock.c:34:12: error: implicit declaration of function 'unsafe_follow_pfn'; did you mean 'nv_follow_pfn'? [-Wimplicit-function-declaration]
      34 |     return unsafe_follow_pfn(vma, address, pfn);
         |            ^~~~~~~~~~~~~~~~~
         |            nv_follow_pfn
   In file included from ././common/inc/conftest.h:28,
                    from ././common/inc/nv_stdarg.h:29,
                    from ././common/inc/nv.h:41,
                    from ././common/inc/nv-linux.h:28,
                    from nvidia/linux_nvswitch.h:28,
                    from nvidia/i2c_nvswitch.c:24:
   ././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
      74 | #error dma_buf_export() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
      87 | #error wait_on_bit_lock() conftest failed!
         |  ^~~~~
   ././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
      90 | #error radix_tree_replace_slot() conftest failed!
         |  ^~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/os-mlock.o] Error 1
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/os-usermap.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from ././common/inc/nv-linux.h:34,
                    from nvidia/nvlink_linux.c:30:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mmzone.h:22,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/gfp.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/xarray.h:16,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/list_lru.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:13,
                    from nvidia/nvlink_linux.h:30,
                    from nvidia/nvlink_linux.c:27:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                    from nvidia/nvlink_linux.h:28:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kasan-checks.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/asm-generic/rwonce.h:26,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/generated/asm/rwonce.h:1,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/compiler.h:344,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/build_bug.h:5,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/init.h:5,
                    from nvidia/nvlink_linux.h:27:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stat.h:19,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:10:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-memdbg.o] Error 1
   In file included from ././common/inc/nv-linux.h:34:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   nvidia/nv-ibmnpu.c: At top level:
   nvidia/nv-ibmnpu.c:395:6: warning: no previous prototype for 'nv_init_ibmnpu_info' [-Wmissing-prototypes]
     395 | void nv_init_ibmnpu_info(nv_state_t *nv)
         |      ^~~~~~~~~~~~~~~~~~~
   nvidia/nv-ibmnpu.c:399:6: warning: no previous prototype for 'nv_destroy_ibmnpu_info' [-Wmissing-prototypes]
     399 | void nv_destroy_ibmnpu_info(nv_state_t *nv)
         |      ^~~~~~~~~~~~~~~~~~~~~~
   nvidia/nv-ibmnpu.c:403:5: warning: no previous prototype for 'nv_init_ibmnpu_devices' [-Wmissing-prototypes]
     403 | int nv_init_ibmnpu_devices(nv_state_t *nv)
         |     ^~~~~~~~~~~~~~~~~~~~~~
   nvidia/nv-ibmnpu.c:408:6: warning: no previous prototype for 'nv_unregister_ibmnpu_devices' [-Wmissing-prototypes]
     408 | void nv_unregister_ibmnpu_devices(nv_state_t *nv)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   nvidia/nv-ibmnpu.c:428:5: warning: no previous prototype for 'nv_get_ibmnpu_chip_id' [-Wmissing-prototypes]
     428 | int nv_get_ibmnpu_chip_id(nv_state_t *nv)
         |     ^~~~~~~~~~~~~~~~~~~~~
   nvidia/nv-ibmnpu.c:437:6: warning: no previous prototype for 'nv_ibmnpu_cache_flush_numa_region' [-Wmissing-prototypes]
     437 | void nv_ibmnpu_cache_flush_numa_region(nv_state_t *nv)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-ibmnpu.o] Error 1
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/os-registry.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-modeset-interface.o] Error 1
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-frontend.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   nvidia/nv-msi.c: In function 'nv_init_msi':
   ././common/inc/nv-linux.h:602:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     602 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv-msi.c:39:9: note: in expansion of macro 'NV_KZALLOC'
      39 |         NV_KZALLOC(nvl->irq_count, sizeof(nv_irq_count_info_t) * nvl->num_intr);
         |         ^~~~~~~~~~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-report-err.o] Error 1
   nvidia/nv-msi.c: In function 'nv_init_msix':
   ././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     595 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv-msi.c:90:5: note: in expansion of macro 'NV_KMALLOC'
      90 |     NV_KMALLOC(nvl->msix_entries, sizeof(struct msix_entry) * num_intr);
         |     ^~~~~~~~~~
   ././common/inc/nv-linux.h:602:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     602 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv-msi.c:102:5: note: in expansion of macro 'NV_KZALLOC'
     102 |     NV_KZALLOC(nvl->irq_count, sizeof(nv_irq_count_info_t) * num_intr);
         |     ^~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-msi.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-rsync.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv_uvm_interface.o] Error 1
   nvidia/nv-caps.c: At top level:
   nvidia/nv-caps.c:269:5: warning: no previous prototype for 'nv_cap_procfs_init' [-Wmissing-prototypes]
     269 | int nv_cap_procfs_init(void)
         |     ^~~~~~~~~~~~~~~~~~
   In file included from ././common/inc/nv-procfs.h:26,
                    from nvidia/nv-caps.c:26:
   nvidia/nv-caps.c: In function 'nv_cap_procfs_init':
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-caps.c:279:18: note: in expansion of macro 'NV_CREATE_PROC_FILE'
     279 |     file_entry = NV_CREATE_PROC_FILE("mig-minors", nv_cap_procfs_dir,
         |                  ^~~~~~~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/efi.h:19,
                    from ././common/inc/nv-linux.h:220:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-caps.c:286:18: note: in expansion of macro 'NV_CREATE_PROC_FILE'
     286 |     file_entry = NV_CREATE_PROC_FILE("nvlink-minors", nv_cap_procfs_dir,
         |                  ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nv-caps.c:293:18: note: in expansion of macro 'NV_CREATE_PROC_FILE'
     293 |     file_entry = NV_CREATE_PROC_FILE("sys-minors", nv_cap_procfs_dir,
         |                  ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/string.h:392,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/bitmap.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/cpumask.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/paravirt.h:21,
                    from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/irqflags.h:102,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/irqflags.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:59:
   nvidia/nv-caps.c: In function 'nv_cap_find_minor':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/fortify-string.h:259:38: error: passing argument 2 of 'full_name_hash' makes pointer from integer without a cast [-Wint-conversion]
     258 |         __builtin_choose_expr(__is_constexpr(__builtin_strlen(p)),      \
         |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     259 |                 __builtin_strlen(p), __fortify_strlen(p))
         |                 ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
         |                                      |
         |                                      __kernel_size_t {aka long unsigned int}
   ././common/inc/nv-hash.h:41:51: note: in expansion of macro 'strlen'
      41 | #define nv_string_hash(_str) full_name_hash(_str, strlen(_str))
         |                                                   ^~~~~~
   nvidia/nv-caps.c:42:32: note: in expansion of macro 'nv_string_hash'
      42 | #define nv_cap_hash_key(path) (nv_string_hash(path) % NV_CAP_HASH_SIZE)
         |                                ^~~~~~~~~~~~~~
   nvidia/nv-caps.c:310:24: note: in expansion of macro 'nv_cap_hash_key'
     310 |     unsigned int key = nv_cap_hash_key(path);
         |                        ^~~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/dcache.h:15,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:8,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/huge_mm.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:1133:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stringhash.h:66:61: note: expected 'const char *' but argument is of type '__kernel_size_t' {aka 'long unsigned int'}
      66 | extern unsigned int __pure full_name_hash(const void *salt, const char *, unsigned int);
         |                                                             ^~~~~~~~~~~~
   In file included from nvidia/nv-caps.c:27:
   ././common/inc/nv-hash.h:41:30: error: too few arguments to function 'full_name_hash'; expected 3, have 2
      41 | #define nv_string_hash(_str) full_name_hash(_str, strlen(_str))
         |                              ^~~~~~~~~~~~~~
   nvidia/nv-caps.c:42:32: note: in expansion of macro 'nv_string_hash'
      42 | #define nv_cap_hash_key(path) (nv_string_hash(path) % NV_CAP_HASH_SIZE)
         |                                ^~~~~~~~~~~~~~
   nvidia/nv-caps.c:310:24: note: in expansion of macro 'nv_cap_hash_key'
     310 |     unsigned int key = nv_cap_hash_key(path);
         |                        ^~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stringhash.h:66:28: note: declared here
      66 | extern unsigned int __pure full_name_hash(const void *salt, const char *, unsigned int);
         |                            ^~~~~~~~~~~~~~
   nvidia/nv-caps.c: In function '_nv_cap_table_init':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/fortify-string.h:259:38: error: passing argument 2 of 'full_name_hash' makes pointer from integer without a cast [-Wint-conversion]
     258 |         __builtin_choose_expr(__is_constexpr(__builtin_strlen(p)),      \
         |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     259 |                 __builtin_strlen(p), __fortify_strlen(p))
         |                 ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
         |                                      |
         |                                      __kernel_size_t {aka long unsigned int}
   ././common/inc/nv-hash.h:41:51: note: in expansion of macro 'strlen'
      41 | #define nv_string_hash(_str) full_name_hash(_str, strlen(_str))
         |                                                   ^~~~~~
   nvidia/nv-caps.c:42:32: note: in expansion of macro 'nv_string_hash'
      42 | #define nv_cap_hash_key(path) (nv_string_hash(path) % NV_CAP_HASH_SIZE)
         |                                ^~~~~~~~~~~~~~
   nvidia/nv-caps.c:334:15: note: in expansion of macro 'nv_cap_hash_key'
     334 |         key = nv_cap_hash_key(table[i].name);
         |               ^~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stringhash.h:66:61: note: expected 'const char *' but argument is of type '__kernel_size_t' {aka 'long unsigned int'}
      66 | extern unsigned int __pure full_name_hash(const void *salt, const char *, unsigned int);
         |                                                             ^~~~~~~~~~~~
   ././common/inc/nv-hash.h:41:30: error: too few arguments to function 'full_name_hash'; expected 3, have 2
      41 | #define nv_string_hash(_str) full_name_hash(_str, strlen(_str))
         |                              ^~~~~~~~~~~~~~
   nvidia/nv-caps.c:42:32: note: in expansion of macro 'nv_string_hash'
      42 | #define nv_cap_hash_key(path) (nv_string_hash(path) % NV_CAP_HASH_SIZE)
         |                                ^~~~~~~~~~~~~~
   nvidia/nv-caps.c:334:15: note: in expansion of macro 'nv_cap_hash_key'
     334 |         key = nv_cap_hash_key(table[i].name);
         |               ^~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stringhash.h:66:28: note: declared here
      66 | extern unsigned int __pure full_name_hash(const void *salt, const char *, unsigned int);
         |                            ^~~~~~~~~~~~~~
   nvidia/nv-caps.c: In function 'nv_cap_procfs_open':
   ././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     595 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv-caps.c:410:5: note: in expansion of macro 'NV_KMALLOC'
     410 |     NV_KMALLOC(private, sizeof(nv_cap_file_private_t));
         |     ^~~~~~~~~~
   nvidia/nv-caps.c: In function 'nv_cap_alloc':
   ././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     595 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv-caps.c:614:5: note: in expansion of macro 'NV_KMALLOC'
     614 |     NV_KMALLOC(cap, sizeof(nv_cap_t));
         |     ^~~~~~~~~~
   ././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     595 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv-caps.c:621:5: note: in expansion of macro 'NV_KMALLOC'
     621 |     NV_KMALLOC(cap->path, len);
         |     ^~~~~~~~~~
   ././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     595 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv-caps.c:633:5: note: in expansion of macro 'NV_KMALLOC'
     633 |     NV_KMALLOC(cap->name, len);
         |     ^~~~~~~~~~
   nvidia/nv-caps.c: In function 'nv_cap_create_file_entry':
   nvidia/nv-caps.c:688:35: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
     688 |                                   &g_nv_cap_procfs_fops, (void*)cap);
         |                                   ^~~~~~~~~~~~~~~~~~~~~
         |                                   |
         |                                   nv_proc_ops_t * {aka struct file_operations *}
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'nv_proc_ops_t *' {aka 'struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   nvidia/nv-caps.c: In function 'nv_cap_init':
   ././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     595 |             NV_MEMDBG_ADD(ptr, size); \
         |                                     ^
   nvidia/nv-caps.c:738:5: note: in expansion of macro 'NV_KMALLOC'
     738 |     NV_KMALLOC(name, (strlen(path) + strlen(dir)) + 1);
         |     ^~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-caps.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   In file included from ././common/inc/nv-linux.h:34:
   ././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
      29 | typedef int vm_fault_t;
         |             ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                    from ././common/inc/nv-lock.h:35,
                    from ././common/inc/nv-linux.h:32:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
    1311 | typedef __bitwise unsigned int vm_fault_t;
         |                                ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                    from ././common/inc/nv-lock.h:29:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
   /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
      52 | #define current get_current()
         |                 ^~~~~~~~~~~~~
         |                 |
         |                 struct task_struct *
   ././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                               ^~~~~~~
   In file included from ././common/inc/nv-pgprot.h:30,
                    from ././common/inc/nv-linux.h:33:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                                                            ^~~~~~~~
         |                                                            |
         |                                                            long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
         |                ^~~~~~~~~~~~~~                                        ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   In file included from ././common/inc/nv.h:35:
   ././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
       8 | #define NULL ((void *)0)
         |              ^~~~~~~~~~~
         |              |
         |              void *
   ././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                   ^~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                     ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                         ^~
         |                                         |
         |                                         struct mm_struct *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |                                          ~~~~~~~~~~~~~~^~~~~~~~
   ././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                                                    ^~~~~~~~
         |                                                    |
         |                                                    long unsigned int
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
    2535 |                     unsigned int gup_flags, struct page **pages);
         |                                             ~~~~~~~~~~~~~~^~~~~
   ././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
     213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
         |                    ^~~~~~~~~~~~~~                            ~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
    2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
         |      ^~~~~~~~~~~~~~
   ././common/inc/nv-mm.h: In function 'nv_page_fault_va':
   ././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
     237 |     return (unsigned long)(vmf->virtual_address);
         |                                 ^~~~~~~~~~~~~~~
         |                                 real_address
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
   ././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     246 |     down_read(&mm->mmap_sem);
         |                    ^~~~~~~~
         |                    mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
   ././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     255 |     up_read(&mm->mmap_sem);
         |                  ^~~~~~~~
         |                  mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
   ././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     264 |     down_write(&mm->mmap_sem);
         |                     ^~~~~~~~
         |                     mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
   ././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     273 |     up_write(&mm->mmap_sem);
         |                   ^~~~~~~~
         |                   mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
   ././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     282 |     return rwsem_is_locked(&mm->mmap_sem);
         |                                 ^~~~~~~~
         |                                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
   ././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
     291 |     return &mm->mmap_sem;
         |                 ^~~~~~~~
         |                 mmap_base
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
   ././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
     300 |     vma->vm_flags |= flags;
         |                   ^~
   ././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
   ././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
     309 |     vma->vm_flags &= ~flags;
         |                   ^~
   In file included from ././common/inc/nv-linux.h:37:
   ././common/inc/nv-time.h: At top level:
   ././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
      40 | struct timespec64 {
         |        ^~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                    from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
      13 | struct timespec64 {
         |        ^~~~~~~~~~
   ././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      77 | static inline struct timespec64 timespec64_add
         |                                 ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
      95 | static inline struct timespec64  timespec64_sub
         |                                  ^~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
      85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
         |                                 ^~~~~~~~~~~~~~
   ././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
     113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
     135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
         |                   ^~~~~~~~~~~~~~~~
   ././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
   ././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     122 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h: In function 'nv_sleep_ms':
   ././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     185 |     ktime_get_raw_ts64(&tm_aux);
         |                        ^~~~~~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
     221 |             ktime_get_raw_ts64(&tm_aux);
         |                                ^~~~~~~
         |                                |
         |                                struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   In file included from ././common/inc/nv-procfs.h:26,
                    from nvidia/procfs_nvswitch.c:25:
   nvidia/procfs_nvswitch.c: In function 'nvswitch_procfs_device_add':
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/procfs_nvswitch.c:135:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
     135 |     entry = NV_CREATE_PROC_FILE("information", device_dir, device_info,
         |             ^~~~~~~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/efi.h:19,
                    from ././common/inc/nv-linux.h:220:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   nvidia/procfs_nvswitch.c: In function 'nvswitch_procfs_init':
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/procfs_nvswitch.c:174:28: note: in expansion of macro 'NV_CREATE_PROC_FILE'
     174 |     nvswitch_permissions = NV_CREATE_PROC_FILE("permissions",
         |                            ^~~~~~~~~~~~~~~~~~~
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/procfs_nvswitch.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   In file included from ././common/inc/nv-procfs.h:26,
                    from nvidia/nvlink_linux.c:31:
   nvidia/nvlink_linux.c: In function 'nvlink_permissions_init':
   ././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
      73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
         |                                                            ^~~~
         |                                                            |
         |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
   nvidia/nvlink_linux.c:115:26: note: in expansion of macro 'NV_CREATE_PROC_FILE'
     115 |     nvlink_permissions = NV_CREATE_PROC_FILE("permissions",
         |                          ^~~~~~~~~~~~~~~~~~~
   In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/efi.h:19,
                    from ././common/inc/nv-linux.h:220:
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
     111 |                                                const struct proc_ops *,
         |                                                ^~~~~~~~~~~~~~~~~~~~~~~
   nvidia/nvlink_linux.c: At top level:
   nvidia/nvlink_linux.c:313:12: warning: no previous prototype for 'nvlink_core_init' [-Wmissing-prototypes]
     313 | int __init nvlink_core_init(void)
         |            ^~~~~~~~~~~~~~~~
   nvidia/nvlink_linux.c:389:6: warning: no previous prototype for 'nvlink_core_exit' [-Wmissing-prototypes]
     389 | void nvlink_core_exit(void)
         |      ^~~~~~~~~~~~~~~~
   nvidia/linux_nvswitch.c: At top level:
   nvidia/linux_nvswitch.c:52:1: warning: 'static' is not at beginning of declaration [-Wold-style-declaration]
      52 | const static struct
         | ^~~~~
   nvidia/linux_nvswitch.c:1705:1: warning: no previous prototype for 'nvswitch_init' [-Wmissing-prototypes]
    1705 | nvswitch_init
         | ^~~~~~~~~~~~~
   nvidia/linux_nvswitch.c:1790:1: warning: no previous prototype for 'nvswitch_exit' [-Wmissing-prototypes]
    1790 | nvswitch_exit
         | ^~~~~~~~~~~~~
   nvidia/linux_nvswitch.c: In function 'nvswitch_os_get_platform_time':
   nvidia/linux_nvswitch.c:1827:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
    1827 |     ktime_get_raw_ts64(&ts);
         |                        ^~~
         |                        |
         |                        struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
         |                                ~~~~~~~~~~~~~~~~~~~^~
   nvidia/linux_nvswitch.c: In function 'nvswitch_os_get_platform_time_epoch':
   nvidia/linux_nvswitch.c:1849:25: error: passing argument 1 of 'ktime_get_real_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
    1849 |     ktime_get_real_ts64(&ts);
         |                         ^~~
         |                         |
         |                         struct timespec64 *
   /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:44:52: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
      44 | extern void ktime_get_real_ts64(struct timespec64 *tv);
         |                                 ~~~~~~~~~~~~~~~~~~~^~
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nvlink_linux.o] Error 1
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/linux_nvswitch.o] Error 1
   ././common/inc/nv-linux.h: In function 'nv_vmalloc':
   ././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     502 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap':
   ././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
     515 |     void *ptr = ioremap_driver_hardened(phys, size);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   ././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     520 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
   ././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~
         |           ioremap_cache
   ././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     533 |     ptr = ioremap_cache_shared(phys, size);
         |         ^
   ././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     556 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
   ././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   ././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     565 |     ptr = ioremap_driver_hardened_wc(phys, size);
         |         ^
   ././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     573 |         NV_MEMDBG_ADD(ptr, size);
         |                                 ^
   ././common/inc/nv-linux.h: In function 'nv_vmap':
   ././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
     699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
         |                                                   ^
   ././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
   ././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
     736 |     return phys_to_dma(dev, pa);
         |            ^~~~~~~~~~~
         |            nv_phys_to_dma
   ././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
   ././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
    1226 |     if (dma_is_direct(get_dma_ops(dev)))
         |         ^~~~~~~~~~~~~
         |         d_is_dir
   make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/i2c_nvswitch.o] Error 1
   make[4]: Target './' not remade because of errors.
   make[3]: *** [/usr/lib/modules/6.14.6-arch1-1/build/Makefile:1997: .] Error 2
   make[3]: Target 'modules' not remade because of errors.
   make[2]: *** [/usr/lib/modules/6.14.6-arch1-1/build/Makefile:251: __sub-make] Error 2
   make[2]: Target 'modules' not remade because of errors.
   make[2]: Leaving directory '/tmp/selfgz13746/NVIDIA-Linux-x86_64-535.161.07-grid/kernel'
   make[1]: *** [Makefile:251: __sub-make] Error 2
   make[1]: Target 'modules' not remade because of errors.
   make[1]: Leaving directory '/usr/lib/modules/6.14.6-arch1-1/build'
   make: *** [Makefile:82: modules] Error 2
-> Error.
ERROR: An error occurred while performing the step: "Checking to see whether the nvidia kernel module was successfully built". See /var/log/nvidia-installer.log for details.
-> The command `cd ./kernel; /usr/bin/make -k -j16  NV_EXCLUDE_KERNEL_MODULES="" SYSSRC="/lib/modules/6.14.6-arch1-1/build" SYSOUT="/lib/modules/6.14.6-arch1-1/build" NV_KERNEL_MODULES="nvidia"` failed with the following output:
Ā make[1]: Entering directory '/usr/lib/modules/6.14.6-arch1-1/build'
make[2]: Entering directory '/tmp/selfgz13746/NVIDIA-Linux-x86_64-535.161.07-grid/kernel'
warning: the compiler differs from the one used to build the kernel
  The kernel was built by: gcc (GCC) 15.1.1 20250425
  You are using:           cc (GCC) 15.1.1 20250425
  SYMLINK nvidia/nv-kernel.o
  CC [M]  nvidia/nv.o
  CC [M]  nvidia/nv-pci.o
  CC [M]  nvidia/nv-dmabuf.o
  CC [M]  nvidia/nv-nano-timer.o
  CC [M]  nvidia/nv-acpi.o
  CC [M]  nvidia/nv-cray.o
  CC [M]  nvidia/nv-dma.o
  CC [M]  nvidia/nv-i2c.o
  CC [M]  nvidia/nv-mmap.o
  CC [M]  nvidia/nv-p2p.o
  CC [M]  nvidia/nv-pat.o
  CC [M]  nvidia/nv-procfs.o
  CC [M]  nvidia/nv-usermap.o
  CC [M]  nvidia/nv-vm.o
  CC [M]  nvidia/nv-vtophys.o
  CC [M]  nvidia/os-interface.o
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv-dma.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv-cray.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv-acpi.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv-mmap.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv-p2p.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv-usermap.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv-pat.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv-vm.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/os-interface.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv-vtophys.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv-procfs.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv-nano-timer.c:30:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv.c:33:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv-nano-timer.c:31:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/nospec-branch.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/paravirt_types.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/ptrace.h:175,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/math_emu.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/processor.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/timex.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timex.h:67,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time32.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:60,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer_defs.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/hrtimer.h:15,
                 from nvidia/nv-nano-timer.c:27:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kasan-checks.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/asm-generic/rwonce.h:26,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/generated/asm/rwonce.h:1,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/compiler.h:344,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/array_size.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kernel.h:16,
                 from nvidia/nv-nano-timer.c:26:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv-usermap.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv.c:34:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mmzone.h:22,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/gfp.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/umh.h:4,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kmod.h:9,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/module.h:17,
                 from nvidia/nv.c:24:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/nospec-branch.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/paravirt_types.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/ptrace.h:175,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/math_emu.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/processor.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/timex.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timex.h:67,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time32.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:60,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stat.h:19,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/module.h:13:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kasan-checks.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/asm-generic/rwonce.h:26,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/generated/asm/rwonce.h:1,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/compiler.h:344,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/build_bug.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/container_of.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/list.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/module.h:12:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv-pat.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv-mmap.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv-procfs.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-pci-types.h:28,
                 from nvidia/nv-pci.c:25:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/nv.h:41,
                 from ././common/inc/nv-linux.h:28,
                 from ././common/inc/nv-dmabuf.h:27,
                 from nvidia/nv-dmabuf.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from ././common/inc/nv-pci.h:28,
                 from nvidia/nv-pci.c:26:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mmzone.h:22,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/gfp.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/xarray.h:16,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/radix-tree.h:21,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/idr.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kernfs.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sysfs.h:16,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kobject.h:20,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/pci.h:35,
                 from nvidia/nv-pci-table.h:27,
                 from nvidia/nv-pci.c:24:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mutex.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kernfs.h:11:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
In file included from ././common/inc/nv-linux.h:34:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/scatterlist.h:8,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/dmapool.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/pci.h:1662:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/mei_uuid.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/mei.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mod_devicetable.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/pci.h:27:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mmzone.h:22,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/gfp.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/scatterlist.h:8,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/dma-buf.h:19,
                 from nvidia/nv-dmabuf.c:23:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/nospec-branch.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/irqflags.h:9,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/irqflags.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/special_insns.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/io.h:45,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/io.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/iosys-map.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/dma-buf.h:16:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/io.h:10:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv-vm.c:26:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from nvidia/nv-vm.c:25:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv-p2p.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv-cray.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/os-interface.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv-dma.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv-acpi.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv-vtophys.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv-i2c.c:28:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv-i2c.c:29:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mmzone.h:22,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/gfp.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/slab.h:16,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/resource_ext.h:11,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/acpi.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/i2c.h:13,
                 from nvidia/nv-i2c.c:26:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mmzone.h:8:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/memcontrol.h:21,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/swap.h:9,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/suspend.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/regulator/consumer.h:35,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/i2c.h:19:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kasan-checks.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/asm-generic/rwonce.h:26,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/generated/asm/rwonce.h:1,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/compiler.h:344,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/build_bug.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/bits.h:22,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ioport.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/acpi.h:12:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
nvidia/nv-nano-timer.c: In function 'nv_alloc_nano_timer':
././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  595 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv-nano-timer.c:86:5: note: in expansion of macro 'NV_KMALLOC'
   86 |     NV_KMALLOC(nv_nstimer, sizeof(nv_nano_timer_t));
      |     ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/sound/hdaudio.h:18,
                 from nvidia/nv.c:70:
/usr/lib/modules/6.14.6-arch1-1/build/include/sound/pcm.h: In function 'snd_pcm_gettime':
/usr/lib/modules/6.14.6-arch1-1/build/include/sound/pcm.h:1292:32: error: passing argument 1 of 'ktime_get_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
 1292 |                 ktime_get_ts64(tv);
      |                                ^~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:43:47: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   43 | extern void ktime_get_ts64(struct timespec64 *ts);
      |                            ~~~~~~~~~~~~~~~~~~~^~
/usr/lib/modules/6.14.6-arch1-1/build/include/sound/pcm.h:1295:36: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
 1295 |                 ktime_get_raw_ts64(tv);
      |                                    ^~
      |                                    |
      |                                    struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
/usr/lib/modules/6.14.6-arch1-1/build/include/sound/pcm.h:1298:37: error: passing argument 1 of 'ktime_get_real_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
 1298 |                 ktime_get_real_ts64(tv);
      |                                     ^~
      |                                     |
      |                                     struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:44:52: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   44 | extern void ktime_get_real_ts64(struct timespec64 *tv);
      |                                 ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia/nv-pci.c: In function 'nv_pci_probe':
././common/inc/nv-linux.h:602:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  602 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv-pci.c:396:5: note: in expansion of macro 'NV_KZALLOC'
  396 |     NV_KZALLOC(nvl, sizeof(nv_linux_state_t));
      |     ^~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
nvidia/nv.c: In function 'nvos_create_alloc':
././common/inc/nv-linux.h:602:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  602 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv.c:262:5: note: in expansion of macro 'NV_KZALLOC'
  262 |     NV_KZALLOC(at, sizeof(nv_alloc_t));
      |     ^~~~~~~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-nano-timer.o] Error 1
nvidia/nv.c: At top level:
nvidia/nv.c:735:12: warning: no previous prototype for 'nvidia_init_module' [-Wmissing-prototypes]
  735 | int __init nvidia_init_module(void)
      |            ^~~~~~~~~~~~~~~~~~
nvidia/nv.c:855:6: warning: no previous prototype for 'nvidia_exit_module' [-Wmissing-prototypes]
  855 | void nvidia_exit_module(void)
      |      ^~~~~~~~~~~~~~~~~~
nvidia/nv.c: In function 'nv_alloc_file_private':
././common/inc/nv-linux.h:602:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  602 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv.c:879:5: note: in expansion of macro 'NV_KZALLOC'
  879 |     NV_KZALLOC(nvlfp, sizeof(nv_linux_file_private_t));
      |     ^~~~~~~~~~
nvidia/nv.c: At top level:
nvidia/nv.c:1124:23: warning: no previous prototype for 'nv_get_num_dpaux_instances' [-Wmissing-prototypes]
 1124 | NV_STATUS NV_API_CALL nv_get_num_dpaux_instances(nv_state_t *nv, NvU32 *num_instances)
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
  CC [M]  nvidia/os-mlock.o
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
nvidia/nv.c: In function 'nvidia_ioctl':
././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  595 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv.c:2104:5: note: in expansion of macro 'NV_KMALLOC'
 2104 |     NV_KMALLOC(arg_copy, arg_size);
      |     ^~~~~~~~~~
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  595 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv.c:2165:13: note: in expansion of macro 'NV_KMALLOC'
 2165 |             NV_KMALLOC(nvlfp->attached_gpus, arg_size);
      |             ^~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-usermap.o] Error 1
nvidia/nv.c: In function 'nv_map_guest_pages':
././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  595 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv.c:2805:5: note: in expansion of macro 'NV_KMALLOC'
 2805 |     NV_KMALLOC(pages, sizeof(struct page *) * page_count);
      |     ^~~~~~~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-dmabuf.o] Error 1
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
  CC [M]  nvidia/os-pci.o
nvidia/nv.c: In function 'nv_alloc_kernel_mapping':
././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  595 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv.c:3282:13: note: in expansion of macro 'NV_KMALLOC'
 3282 |             NV_KMALLOC(pages, sizeof(struct page *) * page_count);
      |             ^~~~~~~~~~
nvidia/nv.c: In function 'nv_post_event':
././common/inc/nv-linux.h:609:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  609 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv.c:3554:9: note: in expansion of macro 'NV_KMALLOC_ATOMIC'
 3554 |         NV_KMALLOC_ATOMIC(nvet, sizeof(nvidia_event_t));
      |         ^~~~~~~~~~~~~~~~~
  CC [M]  nvidia/os-registry.o
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-pci.o] Error 1
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/os-mlock.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
  CC [M]  nvidia/os-usermap.o
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/os-pci.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/os-registry.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/os-usermap.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-pat.o] Error 1
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
  CC [M]  nvidia/nv-modeset-interface.o
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
nvidia/nv-mmap.c: At top level:
nvidia/nv-mmap.c:299:15: error: initialization of 'vm_fault_t (*)(struct vm_fault *)' {aka 'unsigned int (*)(struct vm_fault *)'} from incompatible pointer type 'vm_fault_t (*)(struct vm_area_struct *, struct vm_fault *)' {aka 'int (*)(struct vm_area_struct *, struct vm_fault *)'} [-Wincompatible-pointer-types]
  299 |     .fault  = nvidia_fault,
      |               ^~~~~~~~~~~~
nvidia/nv-mmap.c:299:15: note: (near initialization for 'nv_vm_ops.fault')
nvidia/nv-mmap.c:201:19: note: 'nvidia_fault' declared here
  201 | static vm_fault_t nvidia_fault(
      |                   ^~~~~~~~~~~~
nvidia/nv-mmap.c:303:5: warning: conflicting types for 'nv_encode_caching' due to enum/integer mismatch; have 'int(pgprot_t *, NvU32,  nv_memory_type_t)' {aka 'int(struct pgprot *, unsigned int,  nv_memory_type_t)'} [-Wenum-int-mismatch]
  303 | int nv_encode_caching(
      |     ^~~~~~~~~~~~~~~~~
In file included from ././common/inc/nv-linux.h:1761:
././common/inc/nv-proto.h:46:13: note: previous declaration of 'nv_encode_caching' with type 'int(pgprot_t *, NvU32,  NvU32)' {aka 'int(struct pgprot *, unsigned int,  unsigned int)'}
   46 | int         nv_encode_caching           (pgprot_t *, NvU32, NvU32);
      |             ^~~~~~~~~~~~~~~~~
nvidia/nv-mmap.c:371:1: warning: 'static' is not at beginning of declaration [-Wold-style-declaration]
  371 | int static nvidia_mmap_peer_io(
      | ^~~
nvidia/nv-mmap.c:392:1: warning: 'static' is not at beginning of declaration [-Wold-style-declaration]
  392 | int static nvidia_mmap_sysmem(
      | ^~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv.o] Error 1
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv-modeset-interface.c:26:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
nvidia/nv-procfs.c: In function 'nv_procfs_open_file':
././common/inc/nv-linux.h:602:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  602 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv-procfs.c:276:5: note: in expansion of macro 'NV_KZALLOC'
  276 |     NV_KZALLOC(nvpp, sizeof(nv_procfs_private_t));
      |     ^~~~~~~~~~
  CC [M]  nvidia/nv-kthread-q.o
nvidia/nv-procfs.c: At top level:
nvidia/nv-procfs.c:698:1: warning: no previous prototype for 'exercise_error_forwarding_va' [-Wmissing-prototypes]
  698 | exercise_error_forwarding_va(
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ././common/inc/nv-procfs.h:26,
                 from nvidia/nv-procfs.c:31:
nvidia/nv-procfs.c: In function 'nv_procfs_add_text_file':
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-procfs.c:1312:5: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 1312 |     NV_CREATE_PROC_FILE(filename, parent, text_file, (void *)text);
      |     ^~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/efi.h:19,
                 from ././common/inc/nv-linux.h:220:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
nvidia/nv-procfs.c: In function 'nv_procfs_init':
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-procfs.c:1342:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 1342 |     entry = NV_CREATE_PROC_FILE("params", proc_nvidia, params, NULL);
      |             ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-procfs.c:1346:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 1346 |     entry = NV_CREATE_PROC_FILE("registry", proc_nvidia, registry, NULL);
      |             ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-procfs.c:1351:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 1351 |     entry = NV_CREATE_PROC_FILE("suspend_depth", proc_nvidia, suspend_depth, NULL);
      |             ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-procfs.c:1355:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 1355 |     entry = NV_CREATE_PROC_FILE("suspend", proc_nvidia, suspend, NULL);
      |             ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-procfs.c:1377:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 1377 |     entry = NV_CREATE_PROC_FILE("version", proc_nvidia, version, NULL);
      |             ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
nvidia/nv-procfs.c: In function 'nv_procfs_add_gpu':
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-procfs.c:1419:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 1419 |     entry = NV_CREATE_PROC_FILE("information", proc_nvidia_gpu, gpu_info,
      |             ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-procfs.c:1424:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 1424 |     entry = NV_CREATE_PROC_FILE("registry", proc_nvidia_gpu, registry, nv);
      |             ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-procfs.c:1428:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 1428 |     entry = NV_CREATE_PROC_FILE("power", proc_nvidia_gpu, power, nv);
      |             ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-procfs.c:1434:17: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 1434 |         entry = NV_CREATE_PROC_FILE("exercise_error_forwarding", proc_nvidia_gpu,
      |                 ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-procfs.c:1442:17: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 1442 |         entry = NV_CREATE_PROC_FILE("unbindLock", proc_nvidia_gpu, unbind_lock, nv);
      |                 ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-procfs.c:1449:17: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 1449 |         entry = NV_CREATE_PROC_FILE("numa_status", proc_nvidia_gpu, numa_status,
      |                 ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-procfs.c:1454:17: note: in expansion of macro 'NV_CREATE_PROC_FILE'
 1454 |         entry = NV_CREATE_PROC_FILE("offline_pages", proc_nvidia_gpu, offline_pages,
      |                 ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-mmap.o] Error 1
  CC [M]  nvidia/nv-memdbg.o
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-procfs.o] Error 1
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/nv.h:41,
                 from ././common/inc/nv-linux.h:28,
                 from nvidia/nv-memdbg.c:25:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
  CC [M]  nvidia/nv-ibmnpu.o
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-i2c.o] Error 1
  CC [M]  nvidia/nv-report-err.o
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/nv.h:41,
                 from ././common/inc/nv-linux.h:28,
                 from nvidia/nv-ibmnpu.c:27:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/nv.h:41,
                 from ././common/inc/nv-linux.h:28,
                 from nvidia/nv-report-err.c:25:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
nvidia/nv-dma.c: At top level:
nvidia/nv-dma.c:293:6: warning: no previous prototype for 'nv_load_dma_map_scatterlist' [-Wmissing-prototypes]
  293 | void nv_load_dma_map_scatterlist(
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia/nv-dma.c:489:23: warning: no previous prototype for 'nv_dma_unmap_sgt' [-Wmissing-prototypes]
  489 | NV_STATUS NV_API_CALL nv_dma_unmap_sgt(
      |                       ^~~~~~~~~~~~~~~~
nvidia/os-interface.c: At top level:
nvidia/os-interface.c:370:7: warning: no previous prototype for 'os_mem_copy_custom' [-Wmissing-prototypes]
  370 | void *os_mem_copy_custom(
      |       ^~~~~~~~~~~~~~~~~~
nvidia/os-interface.c: In function 'os_alloc_mem':
././common/inc/nv-linux.h:609:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  609 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/os-interface.c:584:13: note: in expansion of macro 'NV_KMALLOC_ATOMIC'
  584 |             NV_KMALLOC_ATOMIC(*address, alloc_size);
      |             ^~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:624:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  624 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/os-interface.c:590:13: note: in expansion of macro 'NV_KMALLOC_NO_OOM'
  590 |             NV_KMALLOC_NO_OOM(*address, alloc_size);
      |             ^~~~~~~~~~~~~~~~~
nvidia/os-interface.c: In function 'os_get_current_time':
nvidia/os-interface.c:633:25: error: passing argument 1 of 'ktime_get_real_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  633 |     ktime_get_real_ts64(&tm);
      |                         ^~~
      |                         |
      |                         struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:44:52: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   44 | extern void ktime_get_real_ts64(struct timespec64 *tv);
      |                                 ~~~~~~~~~~~~~~~~~~~^~
nvidia/os-interface.c: In function 'os_get_current_tick_hr':
nvidia/os-interface.c:647:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  647 |     ktime_get_raw_ts64(&tm);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia/os-interface.c: In function 'os_get_current_tick':
nvidia/os-interface.c:656:21: error: storage size of 'ts' isn't known
  656 |     struct timespec ts;
      |                     ^~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-dma.o] Error 1
  CC [M]  nvidia/nv-rsync.o
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-cray.o] Error 1
nvidia/os-interface.c:657:5: error: implicit declaration of function 'jiffies_to_timespec'; did you mean 'jiffies_to_timespec64'? [-Wimplicit-function-declaration]
  657 |     jiffies_to_timespec(jiffies, &ts);
      |     ^~~~~~~~~~~~~~~~~~~
      |     jiffies_to_timespec64
  CC [M]  nvidia/nv-msi.o
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-vtophys.o] Error 1
  CC [M]  nvidia/nv-caps.o
nvidia/os-interface.c:658:20: error: implicit declaration of function 'timespec_to_ns'; did you mean 'timespec64_to_ns'? [-Wimplicit-function-declaration]
  658 |     return (NvU64) timespec_to_ns(&ts);
      |                    ^~~~~~~~~~~~~~
      |                    timespec64_to_ns
nvidia/os-interface.c:656:21: warning: unused variable 'ts' [-Wunused-variable]
  656 |     struct timespec ts;
      |                     ^~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-p2p.o] Error 1
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/nv.h:41,
                 from ././common/inc/nv-linux.h:28,
                 from nvidia/nv-rsync.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
  CC [M]  nvidia/nv-frontend.o
nvidia/os-interface.c: In function 'os_queue_work_item':
././common/inc/nv-linux.h:609:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  609 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/os-interface.c:1113:5: note: in expansion of macro 'NV_KMALLOC_ATOMIC'
 1113 |     NV_KMALLOC_ATOMIC(oqd, sizeof(os_queue_data_t));
      |     ^~~~~~~~~~~~~~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/nv.h:41,
                 from ././common/inc/nv-linux.h:28,
                 from ././common/inc/nv-msi.h:27,
                 from nvidia/nv-msi.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
nvidia/nv-vm.c: In function 'nv_set_memory_array_type':
nvidia/nv-vm.c:92:13: error: implicit declaration of function 'set_memory_array_uc'; did you mean 'set_pages_array_uc'? [-Wimplicit-function-declaration]
   92 |             set_memory_array_uc(pages, num_pages);
      |             ^~~~~~~~~~~~~~~~~~~
      |             set_pages_array_uc
nvidia/os-interface.c: In function 'os_write_file':
nvidia/os-interface.c:1792:54: error: passing argument 4 of 'kernel_write' makes pointer from integer without a cast [-Wint-conversion]
 1792 |     num_written = kernel_write(pFile, pBuffer, size, f_pos);
      |                                                      ^~~~~
      |                                                      |
      |                                                      loff_t {aka long long int}
nvidia/os-interface.c:1792:54: note: possible fix: take the address with '&'
 1792 |     num_written = kernel_write(pFile, pBuffer, size, f_pos);
      |                                                      ^~~~~
      |                                                      &
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/huge_mm.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:1133:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:3189:66: note: expected 'loff_t *' {aka 'long long int *'} but argument is of type 'loff_t' {aka 'long long int'}
 3189 | extern ssize_t kernel_write(struct file *, const void *, size_t, loff_t *);
      |                                                                  ^~~~~~~~
nvidia/os-interface.c: In function 'os_read_file':
nvidia/os-interface.c:1832:35: error: passing argument 2 of 'kernel_read' makes pointer from integer without a cast [-Wint-conversion]
 1832 |     num_read = kernel_read(pFile, f_pos, pBuffer, size);
      |                                   ^~~~~
      |                                   |
      |                                   loff_t {aka long long int}
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:3187:43: note: expected 'void *' but argument is of type 'loff_t' {aka 'long long int'}
 3187 | extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
      |                                           ^~~~~~
nvidia/os-interface.c:1832:42: error: passing argument 3 of 'kernel_read' makes integer from pointer without a cast [-Wint-conversion]
 1832 |     num_read = kernel_read(pFile, f_pos, pBuffer, size);
      |                                          ^~~~~~~
      |                                          |
      |                                          NvU8 * {aka unsigned char *}
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:3187:51: note: expected 'size_t' {aka 'long unsigned int'} but argument is of type 'NvU8 *' {aka 'unsigned char *'}
 3187 | extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
      |                                                   ^~~~~~
nvidia/os-interface.c:1832:51: error: passing argument 4 of 'kernel_read' makes pointer from integer without a cast [-Wint-conversion]
 1832 |     num_read = kernel_read(pFile, f_pos, pBuffer, size);
      |                                                   ^~~~
      |                                                   |
      |                                                   NvU64 {aka long long unsigned int}
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:3187:59: note: expected 'loff_t *' {aka 'long long int *'} but argument is of type 'NvU64' {aka 'long long unsigned int'}
 3187 | extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
      |                                                           ^~~~~~~~
nvidia/os-interface.c: In function 'os_alloc_wait_queue':
././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  595 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/os-interface.c:1945:5: note: in expansion of macro 'NV_KMALLOC'
 1945 |     NV_KMALLOC(*wq, sizeof(os_wait_queue));
      |     ^~~~~~~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-acpi.o] Error 1
  CC [M]  nvidia/nv_uvm_interface.o
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/nv.h:41,
                 from ././common/inc/nv-linux.h:28,
                 from nvidia/nv-caps.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv-frontend.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/os-interface.h:40,
                 from nvidia/nv_uvm_interface.c:32:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv-kthread-q.h:33,
                 from nvidia/nv-kthread-q.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/os-interface.o] Error 1
  CC [M]  nvidia/libspdm_aead.o
nvidia/nv-vm.c:95:13: error: implicit declaration of function 'set_memory_array_wb'; did you mean 'set_pages_array_wb'? [-Wimplicit-function-declaration]
   95 |             set_memory_array_wb(pages, num_pages);
      |             ^~~~~~~~~~~~~~~~~~~
      |             set_pages_array_wb
In file included from ././common/inc/conftest.h:28,
                 from nvidia/internal_crypt_lib.h:32,
                 from nvidia/libspdm_aead.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-vm.o] Error 1
  CC [M]  nvidia/libspdm_hkdf.o
In file included from ././common/inc/conftest.h:28,
                 from nvidia/internal_crypt_lib.h:32,
                 from nvidia/libspdm_hkdf.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
nvidia/libspdm_aead.c:41:5: warning: no previous prototype for 'libspdm_aead_prealloc' [-Wmissing-prototypes]
   41 | int libspdm_aead_prealloc(void **context, char const *alg)
      |     ^~~~~~~~~~~~~~~~~~~~~
nvidia/libspdm_aead.c:171:5: warning: no previous prototype for 'libspdm_aead_prealloced' [-Wmissing-prototypes]
  171 | int libspdm_aead_prealloced(void *context,
      |     ^~~~~~~~~~~~~~~~~~~~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/libspdm_aead.o] Error 1
  CC [M]  nvidia/libspdm_shash.o
In file included from ././common/inc/conftest.h:28,
                 from nvidia/internal_crypt_lib.h:32,
                 from nvidia/libspdm_shash.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/libspdm_hkdf.o] Error 1
  CC [M]  nvidia/nvlink_linux.o
In file included from ././common/inc/conftest.h:28,
                 from nvidia/nvlink_linux.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/os-mlock.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/os-pci.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/os-usermap.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/libspdm_shash.o] Error 1
  CC [M]  nvidia/linux_nvswitch.o
nvidia/nv-kthread-q.c: In function 'thread_create_on_node':
nvidia/nv-kthread-q.c:179:5: warning: 'static' is not at beginning of declaration [-Wold-style-declaration]
  179 |     const static unsigned attempts = 3;
      |     ^~~~~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/nv.h:41,
                 from ././common/inc/nv-linux.h:28,
                 from nvidia/linux_nvswitch.h:28,
                 from nvidia/linux_nvswitch.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:34:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/os-registry.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-kthread-q.o] Error 1
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
  CC [M]  nvidia/procfs_nvswitch.o
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv-modeset-interface.c:27:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/nv.h:41,
                 from ././common/inc/nv-linux.h:28,
                 from nvidia/linux_nvswitch.h:28,
                 from nvidia/procfs_nvswitch.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:34:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv-frontend.c:25:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:34:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
In file included from ././common/inc/nv-linux.h:34:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nv_uvm_interface.c:33:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35,
                 from ././common/inc/nv-linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/os-pci.o] Error 1
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
  CC [M]  nvidia/i2c_nvswitch.o
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
nvidia/os-mlock.c: In function 'nv_follow_pfn':
nvidia/os-mlock.c:34:12: error: implicit declaration of function 'unsafe_follow_pfn'; did you mean 'nv_follow_pfn'? [-Wimplicit-function-declaration]
   34 |     return unsafe_follow_pfn(vma, address, pfn);
      |            ^~~~~~~~~~~~~~~~~
      |            nv_follow_pfn
In file included from ././common/inc/conftest.h:28,
                 from ././common/inc/nv_stdarg.h:29,
                 from ././common/inc/nv.h:41,
                 from ././common/inc/nv-linux.h:28,
                 from nvidia/linux_nvswitch.h:28,
                 from nvidia/i2c_nvswitch.c:24:
././conftest/functions.h:74:2: error: #error dma_buf_export() conftest failed!
   74 | #error dma_buf_export() conftest failed!
      |  ^~~~~
././conftest/functions.h:87:2: error: #error wait_on_bit_lock() conftest failed!
   87 | #error wait_on_bit_lock() conftest failed!
      |  ^~~~~
././conftest/functions.h:90:2: error: #error radix_tree_replace_slot() conftest failed!
   90 | #error radix_tree_replace_slot() conftest failed!
      |  ^~~~~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/os-mlock.o] Error 1
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/os-usermap.o] Error 1
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from ././common/inc/nv-linux.h:34,
                 from nvidia/nvlink_linux.c:30:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mmzone.h:22,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/gfp.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/xarray.h:16,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/list_lru.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:13,
                 from nvidia/nvlink_linux.h:30,
                 from nvidia/nvlink_linux.c:27:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched.h:12,
                 from nvidia/nvlink_linux.h:28:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/posix_types.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/uapi/linux/types.h:14,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/types.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/kasan-checks.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/asm-generic/rwonce.h:26,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/generated/asm/rwonce.h:1,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/compiler.h:344,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/build_bug.h:5,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/init.h:5,
                 from nvidia/nvlink_linux.h:27:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/stat.h:19,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:10:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-memdbg.o] Error 1
In file included from ././common/inc/nv-linux.h:34:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
././common/inc/nv-linux.h: In function 'nv_vmap':
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
nvidia/nv-ibmnpu.c: At top level:
nvidia/nv-ibmnpu.c:395:6: warning: no previous prototype for 'nv_init_ibmnpu_info' [-Wmissing-prototypes]
  395 | void nv_init_ibmnpu_info(nv_state_t *nv)
      |      ^~~~~~~~~~~~~~~~~~~
nvidia/nv-ibmnpu.c:399:6: warning: no previous prototype for 'nv_destroy_ibmnpu_info' [-Wmissing-prototypes]
  399 | void nv_destroy_ibmnpu_info(nv_state_t *nv)
      |      ^~~~~~~~~~~~~~~~~~~~~~
nvidia/nv-ibmnpu.c:403:5: warning: no previous prototype for 'nv_init_ibmnpu_devices' [-Wmissing-prototypes]
  403 | int nv_init_ibmnpu_devices(nv_state_t *nv)
      |     ^~~~~~~~~~~~~~~~~~~~~~
nvidia/nv-ibmnpu.c:408:6: warning: no previous prototype for 'nv_unregister_ibmnpu_devices' [-Wmissing-prototypes]
  408 | void nv_unregister_ibmnpu_devices(nv_state_t *nv)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia/nv-ibmnpu.c:428:5: warning: no previous prototype for 'nv_get_ibmnpu_chip_id' [-Wmissing-prototypes]
  428 | int nv_get_ibmnpu_chip_id(nv_state_t *nv)
      |     ^~~~~~~~~~~~~~~~~~~~~
nvidia/nv-ibmnpu.c:437:6: warning: no previous prototype for 'nv_ibmnpu_cache_flush_numa_region' [-Wmissing-prototypes]
  437 | void nv_ibmnpu_cache_flush_numa_region(nv_state_t *nv)
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-ibmnpu.o] Error 1
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/os-registry.o] Error 1
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-modeset-interface.o] Error 1
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-frontend.o] Error 1
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
nvidia/nv-msi.c: In function 'nv_init_msi':
././common/inc/nv-linux.h:602:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  602 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv-msi.c:39:9: note: in expansion of macro 'NV_KZALLOC'
   39 |         NV_KZALLOC(nvl->irq_count, sizeof(nv_irq_count_info_t) * nvl->num_intr);
      |         ^~~~~~~~~~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-report-err.o] Error 1
nvidia/nv-msi.c: In function 'nv_init_msix':
././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  595 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv-msi.c:90:5: note: in expansion of macro 'NV_KMALLOC'
   90 |     NV_KMALLOC(nvl->msix_entries, sizeof(struct msix_entry) * num_intr);
      |     ^~~~~~~~~~
././common/inc/nv-linux.h:602:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  602 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv-msi.c:102:5: note: in expansion of macro 'NV_KZALLOC'
  102 |     NV_KZALLOC(nvl->irq_count, sizeof(nv_irq_count_info_t) * num_intr);
      |     ^~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-msi.o] Error 1
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-rsync.o] Error 1
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv_uvm_interface.o] Error 1
nvidia/nv-caps.c: At top level:
nvidia/nv-caps.c:269:5: warning: no previous prototype for 'nv_cap_procfs_init' [-Wmissing-prototypes]
  269 | int nv_cap_procfs_init(void)
      |     ^~~~~~~~~~~~~~~~~~
In file included from ././common/inc/nv-procfs.h:26,
                 from nvidia/nv-caps.c:26:
nvidia/nv-caps.c: In function 'nv_cap_procfs_init':
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-caps.c:279:18: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  279 |     file_entry = NV_CREATE_PROC_FILE("mig-minors", nv_cap_procfs_dir,
      |                  ^~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/efi.h:19,
                 from ././common/inc/nv-linux.h:220:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-caps.c:286:18: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  286 |     file_entry = NV_CREATE_PROC_FILE("nvlink-minors", nv_cap_procfs_dir,
      |                  ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nv-caps.c:293:18: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  293 |     file_entry = NV_CREATE_PROC_FILE("sys-minors", nv_cap_procfs_dir,
      |                  ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/string.h:392,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/bitmap.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/cpumask.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/paravirt.h:21,
                 from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/irqflags.h:102,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/irqflags.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:59:
nvidia/nv-caps.c: In function 'nv_cap_find_minor':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/fortify-string.h:259:38: error: passing argument 2 of 'full_name_hash' makes pointer from integer without a cast [-Wint-conversion]
  258 |         __builtin_choose_expr(__is_constexpr(__builtin_strlen(p)),      \
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  259 |                 __builtin_strlen(p), __fortify_strlen(p))
      |                 ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
      |                                      |
      |                                      __kernel_size_t {aka long unsigned int}
././common/inc/nv-hash.h:41:51: note: in expansion of macro 'strlen'
   41 | #define nv_string_hash(_str) full_name_hash(_str, strlen(_str))
      |                                                   ^~~~~~
nvidia/nv-caps.c:42:32: note: in expansion of macro 'nv_string_hash'
   42 | #define nv_cap_hash_key(path) (nv_string_hash(path) % NV_CAP_HASH_SIZE)
      |                                ^~~~~~~~~~~~~~
nvidia/nv-caps.c:310:24: note: in expansion of macro 'nv_cap_hash_key'
  310 |     unsigned int key = nv_cap_hash_key(path);
      |                        ^~~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/dcache.h:15,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/fs.h:8,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/huge_mm.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:1133:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stringhash.h:66:61: note: expected 'const char *' but argument is of type '__kernel_size_t' {aka 'long unsigned int'}
   66 | extern unsigned int __pure full_name_hash(const void *salt, const char *, unsigned int);
      |                                                             ^~~~~~~~~~~~
In file included from nvidia/nv-caps.c:27:
././common/inc/nv-hash.h:41:30: error: too few arguments to function 'full_name_hash'; expected 3, have 2
   41 | #define nv_string_hash(_str) full_name_hash(_str, strlen(_str))
      |                              ^~~~~~~~~~~~~~
nvidia/nv-caps.c:42:32: note: in expansion of macro 'nv_string_hash'
   42 | #define nv_cap_hash_key(path) (nv_string_hash(path) % NV_CAP_HASH_SIZE)
      |                                ^~~~~~~~~~~~~~
nvidia/nv-caps.c:310:24: note: in expansion of macro 'nv_cap_hash_key'
  310 |     unsigned int key = nv_cap_hash_key(path);
      |                        ^~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stringhash.h:66:28: note: declared here
   66 | extern unsigned int __pure full_name_hash(const void *salt, const char *, unsigned int);
      |                            ^~~~~~~~~~~~~~
nvidia/nv-caps.c: In function '_nv_cap_table_init':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/fortify-string.h:259:38: error: passing argument 2 of 'full_name_hash' makes pointer from integer without a cast [-Wint-conversion]
  258 |         __builtin_choose_expr(__is_constexpr(__builtin_strlen(p)),      \
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  259 |                 __builtin_strlen(p), __fortify_strlen(p))
      |                 ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
      |                                      |
      |                                      __kernel_size_t {aka long unsigned int}
././common/inc/nv-hash.h:41:51: note: in expansion of macro 'strlen'
   41 | #define nv_string_hash(_str) full_name_hash(_str, strlen(_str))
      |                                                   ^~~~~~
nvidia/nv-caps.c:42:32: note: in expansion of macro 'nv_string_hash'
   42 | #define nv_cap_hash_key(path) (nv_string_hash(path) % NV_CAP_HASH_SIZE)
      |                                ^~~~~~~~~~~~~~
nvidia/nv-caps.c:334:15: note: in expansion of macro 'nv_cap_hash_key'
  334 |         key = nv_cap_hash_key(table[i].name);
      |               ^~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stringhash.h:66:61: note: expected 'const char *' but argument is of type '__kernel_size_t' {aka 'long unsigned int'}
   66 | extern unsigned int __pure full_name_hash(const void *salt, const char *, unsigned int);
      |                                                             ^~~~~~~~~~~~
././common/inc/nv-hash.h:41:30: error: too few arguments to function 'full_name_hash'; expected 3, have 2
   41 | #define nv_string_hash(_str) full_name_hash(_str, strlen(_str))
      |                              ^~~~~~~~~~~~~~
nvidia/nv-caps.c:42:32: note: in expansion of macro 'nv_string_hash'
   42 | #define nv_cap_hash_key(path) (nv_string_hash(path) % NV_CAP_HASH_SIZE)
      |                                ^~~~~~~~~~~~~~
nvidia/nv-caps.c:334:15: note: in expansion of macro 'nv_cap_hash_key'
  334 |         key = nv_cap_hash_key(table[i].name);
      |               ^~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stringhash.h:66:28: note: declared here
   66 | extern unsigned int __pure full_name_hash(const void *salt, const char *, unsigned int);
      |                            ^~~~~~~~~~~~~~
nvidia/nv-caps.c: In function 'nv_cap_procfs_open':
././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  595 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv-caps.c:410:5: note: in expansion of macro 'NV_KMALLOC'
  410 |     NV_KMALLOC(private, sizeof(nv_cap_file_private_t));
      |     ^~~~~~~~~~
nvidia/nv-caps.c: In function 'nv_cap_alloc':
././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  595 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv-caps.c:614:5: note: in expansion of macro 'NV_KMALLOC'
  614 |     NV_KMALLOC(cap, sizeof(nv_cap_t));
      |     ^~~~~~~~~~
././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  595 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv-caps.c:621:5: note: in expansion of macro 'NV_KMALLOC'
  621 |     NV_KMALLOC(cap->path, len);
      |     ^~~~~~~~~~
././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  595 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv-caps.c:633:5: note: in expansion of macro 'NV_KMALLOC'
  633 |     NV_KMALLOC(cap->name, len);
      |     ^~~~~~~~~~
nvidia/nv-caps.c: In function 'nv_cap_create_file_entry':
nvidia/nv-caps.c:688:35: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
  688 |                                   &g_nv_cap_procfs_fops, (void*)cap);
      |                                   ^~~~~~~~~~~~~~~~~~~~~
      |                                   |
      |                                   nv_proc_ops_t * {aka struct file_operations *}
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'nv_proc_ops_t *' {aka 'struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
nvidia/nv-caps.c: In function 'nv_cap_init':
././common/inc/nv-linux.h:595:37: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  595 |             NV_MEMDBG_ADD(ptr, size); \
      |                                     ^
nvidia/nv-caps.c:738:5: note: in expansion of macro 'NV_KMALLOC'
  738 |     NV_KMALLOC(name, (strlen(path) + strlen(dir)) + 1);
      |     ^~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nv-caps.o] Error 1
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
In file included from ././common/inc/nv-linux.h:34:
././common/inc/nv-mm.h:29:13: error: conflicting types for 'vm_fault_t'; have 'int'
   29 | typedef int vm_fault_t;
      |             ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/uaccess.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uaccess.h:12,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/task.h:13,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/sched/signal.h:9,
                 from ././common/inc/nv-lock.h:35,
                 from ././common/inc/nv-linux.h:32:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:1311:32: note: previous declaration of 'vm_fault_t' with type 'vm_fault_t' {aka 'unsigned int'}
 1311 | typedef __bitwise unsigned int vm_fault_t;
      |                                ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/preempt.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/preempt.h:79,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/spinlock.h:56,
                 from ././common/inc/nv-lock.h:29:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES':
/usr/lib/modules/6.14.6-arch1-1/build/arch/x86/include/asm/current.h:52:17: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
   52 | #define current get_current()
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 struct task_struct *
././common/inc/nv-mm.h:104:31: note: in expansion of macro 'current'
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                               ^~~~~~~
In file included from ././common/inc/nv-pgprot.h:30,
                 from ././common/inc/nv-linux.h:33:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'struct task_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:47: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:104:60: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                                                            ^~~~~~~~
      |                                                            |
      |                                                            long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:104:16: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  104 |         return get_user_pages(current, current->mm, start, nr_pages, write,
      |                ^~~~~~~~~~~~~~                                        ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
In file included from ././common/inc/nv.h:35:
././common/inc/nv-mm.h: In function 'NV_GET_USER_PAGES_REMOTE':
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/stddef.h:8:14: error: passing argument 1 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
    8 | #define NULL ((void *)0)
      |              ^~~~~~~~~~~
      |              |
      |              void *
././common/inc/nv-mm.h:213:35: note: in expansion of macro 'NULL'
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                   ^~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:35: note: expected 'long unsigned int' but argument is of type 'void *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                     ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:41: error: passing argument 2 of 'get_user_pages' makes integer from pointer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                         ^~
      |                                         |
      |                                         struct mm_struct *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:56: note: expected 'long unsigned int' but argument is of type 'struct mm_struct *'
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |                                          ~~~~~~~~~~~~~~^~~~~~~~
././common/inc/nv-mm.h:213:52: error: passing argument 4 of 'get_user_pages' makes pointer from integer without a cast [-Wint-conversion]
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    long unsigned int
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2535:59: note: expected 'struct page **' but argument is of type 'long unsigned int'
 2535 |                     unsigned int gup_flags, struct page **pages);
      |                                             ~~~~~~~~~~~~~~^~~~~
././common/inc/nv-mm.h:213:20: error: too many arguments to function 'get_user_pages'; expected 4, have 8
  213 |             return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas);
      |                    ^~~~~~~~~~~~~~                            ~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm.h:2534:6: note: declared here
 2534 | long get_user_pages(unsigned long start, unsigned long nr_pages,
      |      ^~~~~~~~~~~~~~
././common/inc/nv-mm.h: In function 'nv_page_fault_va':
././common/inc/nv-mm.h:237:33: error: 'struct vm_fault' has no member named 'virtual_address'; did you mean 'real_address'?
  237 |     return (unsigned long)(vmf->virtual_address);
      |                                 ^~~~~~~~~~~~~~~
      |                                 real_address
././common/inc/nv-mm.h: In function 'nv_mmap_read_lock':
././common/inc/nv-mm.h:246:20: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  246 |     down_read(&mm->mmap_sem);
      |                    ^~~~~~~~
      |                    mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_read_unlock':
././common/inc/nv-mm.h:255:18: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  255 |     up_read(&mm->mmap_sem);
      |                  ^~~~~~~~
      |                  mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_lock':
././common/inc/nv-mm.h:264:21: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  264 |     down_write(&mm->mmap_sem);
      |                     ^~~~~~~~
      |                     mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_write_unlock':
././common/inc/nv-mm.h:273:19: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  273 |     up_write(&mm->mmap_sem);
      |                   ^~~~~~~~
      |                   mmap_base
././common/inc/nv-mm.h: In function 'nv_mm_rwsem_is_locked':
././common/inc/nv-mm.h:282:33: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  282 |     return rwsem_is_locked(&mm->mmap_sem);
      |                                 ^~~~~~~~
      |                                 mmap_base
././common/inc/nv-mm.h: In function 'nv_mmap_get_lock':
././common/inc/nv-mm.h:291:17: error: 'struct mm_struct' has no member named 'mmap_sem'; did you mean 'mmap_base'?
  291 |     return &mm->mmap_sem;
      |                 ^~~~~~~~
      |                 mmap_base
././common/inc/nv-mm.h: In function 'nv_vm_flags_set':
././common/inc/nv-mm.h:300:19: error: assignment of read-only member 'vm_flags'
  300 |     vma->vm_flags |= flags;
      |                   ^~
././common/inc/nv-mm.h: In function 'nv_vm_flags_clear':
././common/inc/nv-mm.h:309:19: error: assignment of read-only member 'vm_flags'
  309 |     vma->vm_flags &= ~flags;
      |                   ^~
In file included from ././common/inc/nv-linux.h:37:
././common/inc/nv-time.h: At top level:
././common/inc/nv-time.h:40:8: error: redefinition of 'struct timespec64'
   40 | struct timespec64 {
      |        ^~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/time.h:7,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/jiffies.h:10,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:25,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/timer.h:6,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/uprobes.h:18,
                 from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/mm_types.h:16:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:13:8: note: originally defined here
   13 | struct timespec64 {
      |        ^~~~~~~~~~
././common/inc/nv-time.h:77:33: error: conflicting types for 'timespec64_add'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   77 | static inline struct timespec64 timespec64_add
      |                                 ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:73:33: note: previous definition of 'timespec64_add' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   73 | static inline struct timespec64 timespec64_add(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:95:34: error: conflicting types for 'timespec64_sub'; have 'struct timespec64(const struct timespec64,  const struct timespec64)'
   95 | static inline struct timespec64  timespec64_sub
      |                                  ^~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:85:33: note: previous definition of 'timespec64_sub' with type 'struct timespec64(struct timespec64,  struct timespec64)'
   85 | static inline struct timespec64 timespec64_sub(struct timespec64 lhs,
      |                                 ^~~~~~~~~~~~~~
././common/inc/nv-time.h:113:19: error: conflicting types for 'timespec64_to_ns'; have 's64(struct timespec64 *)' {aka 'long long int(struct timespec64 *)'}
  113 | static inline s64 timespec64_to_ns(struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/time64.h:135:19: note: previous definition of 'timespec64_to_ns' with type 's64(const struct timespec64 *)' {aka 'long long int(const struct timespec64 *)'}
  135 | static inline s64 timespec64_to_ns(const struct timespec64 *ts)
      |                   ^~~~~~~~~~~~~~~~
././common/inc/nv-time.h: In function 'nv_ktime_get_raw_ns':
././common/inc/nv-time.h:122:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  122 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/ktime.h:235:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h: In function 'nv_sleep_ms':
././common/inc/nv-time.h:185:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  185 |     ktime_get_raw_ts64(&tm_aux);
      |                        ^~~~~~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-time.h:221:32: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
  221 |             ktime_get_raw_ts64(&tm_aux);
      |                                ^~~~~~~
      |                                |
      |                                struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
In file included from ././common/inc/nv-procfs.h:26,
                 from nvidia/procfs_nvswitch.c:25:
nvidia/procfs_nvswitch.c: In function 'nvswitch_procfs_device_add':
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/procfs_nvswitch.c:135:13: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  135 |     entry = NV_CREATE_PROC_FILE("information", device_dir, device_info,
      |             ^~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/efi.h:19,
                 from ././common/inc/nv-linux.h:220:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
nvidia/procfs_nvswitch.c: In function 'nvswitch_procfs_init':
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/procfs_nvswitch.c:174:28: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  174 |     nvswitch_permissions = NV_CREATE_PROC_FILE("permissions",
      |                            ^~~~~~~~~~~~~~~~~~~
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/procfs_nvswitch.o] Error 1
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
In file included from ././common/inc/nv-procfs.h:26,
                 from nvidia/nvlink_linux.c:31:
nvidia/nvlink_linux.c: In function 'nvlink_permissions_init':
././common/inc/nv-procfs-utils.h:73:60: error: passing argument 4 of 'proc_create_data' from incompatible pointer type [-Wincompatible-pointer-types]
   73 |         __entry = proc_create_data(filename, mode, parent, fops, __data);\
      |                                                            ^~~~
      |                                                            |
      |                                                            const nv_proc_ops_t * {aka const struct file_operations *}
nvidia/nvlink_linux.c:115:26: note: in expansion of macro 'NV_CREATE_PROC_FILE'
  115 |     nvlink_permissions = NV_CREATE_PROC_FILE("permissions",
      |                          ^~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/modules/6.14.6-arch1-1/build/include/linux/efi.h:19,
                 from ././common/inc/nv-linux.h:220:
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/proc_fs.h:111:48: note: expected 'const struct proc_ops *' but argument is of type 'const nv_proc_ops_t *' {aka 'const struct file_operations *'}
  111 |                                                const struct proc_ops *,
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~
nvidia/nvlink_linux.c: At top level:
nvidia/nvlink_linux.c:313:12: warning: no previous prototype for 'nvlink_core_init' [-Wmissing-prototypes]
  313 | int __init nvlink_core_init(void)
      |            ^~~~~~~~~~~~~~~~
nvidia/nvlink_linux.c:389:6: warning: no previous prototype for 'nvlink_core_exit' [-Wmissing-prototypes]
  389 | void nvlink_core_exit(void)
      |      ^~~~~~~~~~~~~~~~
nvidia/linux_nvswitch.c: At top level:
nvidia/linux_nvswitch.c:52:1: warning: 'static' is not at beginning of declaration [-Wold-style-declaration]
   52 | const static struct
      | ^~~~~
nvidia/linux_nvswitch.c:1705:1: warning: no previous prototype for 'nvswitch_init' [-Wmissing-prototypes]
 1705 | nvswitch_init
      | ^~~~~~~~~~~~~
nvidia/linux_nvswitch.c:1790:1: warning: no previous prototype for 'nvswitch_exit' [-Wmissing-prototypes]
 1790 | nvswitch_exit
      | ^~~~~~~~~~~~~
nvidia/linux_nvswitch.c: In function 'nvswitch_os_get_platform_time':
nvidia/linux_nvswitch.c:1827:24: error: passing argument 1 of 'ktime_get_raw_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
 1827 |     ktime_get_raw_ts64(&ts);
      |                        ^~~
      |                        |
      |                        struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:42:51: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   42 | extern void ktime_get_raw_ts64(struct timespec64 *ts);
      |                                ~~~~~~~~~~~~~~~~~~~^~
nvidia/linux_nvswitch.c: In function 'nvswitch_os_get_platform_time_epoch':
nvidia/linux_nvswitch.c:1849:25: error: passing argument 1 of 'ktime_get_real_ts64' from incompatible pointer type [-Wincompatible-pointer-types]
 1849 |     ktime_get_real_ts64(&ts);
      |                         ^~~
      |                         |
      |                         struct timespec64 *
/usr/lib/modules/6.14.6-arch1-1/build/include/linux/timekeeping.h:44:52: note: expected 'struct timespec64 *' but argument is of type 'struct timespec64 *'
   44 | extern void ktime_get_real_ts64(struct timespec64 *tv);
      |                                 ~~~~~~~~~~~~~~~~~~~^~
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/nvlink_linux.o] Error 1
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/linux_nvswitch.o] Error 1
././common/inc/nv-linux.h: In function 'nv_vmalloc':
././common/inc/nv-linux.h:502:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  502 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap':
././common/inc/nv-linux.h:515:17: error: implicit declaration of function 'ioremap_driver_hardened' [-Wimplicit-function-declaration]
  515 |     void *ptr = ioremap_driver_hardened(phys, size);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:515:17: error: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
././common/inc/nv-linux.h:520:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  520 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_cache':
././common/inc/nv-linux.h:533:11: error: implicit declaration of function 'ioremap_cache_shared'; did you mean 'ioremap_cache'? [-Wimplicit-function-declaration]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~
      |           ioremap_cache
././common/inc/nv-linux.h:533:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  533 |     ptr = ioremap_cache_shared(phys, size);
      |         ^
././common/inc/nv-linux.h:556:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  556 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_ioremap_wc':
././common/inc/nv-linux.h:565:11: error: implicit declaration of function 'ioremap_driver_hardened_wc' [-Wimplicit-function-declaration]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
././common/inc/nv-linux.h:565:9: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  565 |     ptr = ioremap_driver_hardened_wc(phys, size);
      |         ^
././common/inc/nv-linux.h:573:33: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  573 |         NV_MEMDBG_ADD(ptr, size);
      |                                 ^
././common/inc/nv-linux.h: In function 'nv_vmap':
././common/inc/nv-linux.h:699:51: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
  699 |         NV_MEMDBG_ADD(ptr, page_count * PAGE_SIZE);
      |                                                   ^
././common/inc/nv-linux.h: In function 'nv_phys_to_dma':
././common/inc/nv-linux.h:736:12: error: implicit declaration of function 'phys_to_dma'; did you mean 'nv_phys_to_dma'? [-Wimplicit-function-declaration]
  736 |     return phys_to_dma(dev, pa);
      |            ^~~~~~~~~~~
      |            nv_phys_to_dma
././common/inc/nv-linux.h: In function 'nv_is_dma_direct':
././common/inc/nv-linux.h:1226:9: error: implicit declaration of function 'dma_is_direct'; did you mean 'd_is_dir'? [-Wimplicit-function-declaration]
 1226 |     if (dma_is_direct(get_dma_ops(dev)))
      |         ^~~~~~~~~~~~~
      |         d_is_dir
make[4]: *** [/usr/lib/modules/6.14.6-arch1-1/build/scripts/Makefile.build:207: nvidia/i2c_nvswitch.o] Error 1
make[4]: Target './' not remade because of errors.
make[3]: *** [/usr/lib/modules/6.14.6-arch1-1/build/Makefile:1997: .] Error 2
make[3]: Target 'modules' not remade because of errors.
make[2]: *** [/usr/lib/modules/6.14.6-arch1-1/build/Makefile:251: __sub-make] Error 2
make[2]: Target 'modules' not remade because of errors.
make[2]: Leaving directory '/tmp/selfgz13746/NVIDIA-Linux-x86_64-535.161.07-grid/kernel'
make[1]: *** [Makefile:251: __sub-make] Error 2
make[1]: Target 'modules' not remade because of errors.
make[1]: Leaving directory '/usr/lib/modules/6.14.6-arch1-1/build'
make: *** [Makefile:82: modules] Error 2

Comments