diff --git a/Makefile b/Makefile index 2dee7b9..adccc37 100644 --- a/Makefile +++ b/Makefile @@ -95,7 +95,7 @@ else # If scripts/pahole-flags.sh is not present in the kernel tree, add PAHOLE and # PAHOLE_AWK_PROGRAM assignments to PAHOLE_VARIABLES; otherwise assign the # empty string to PAHOLE_VARIABLES. - PAHOLE_VARIABLES=$(if $(wildcard $(KERNEL_SOURCES)/scripts/pahole-flags.sh),,"PAHOLE=$(AWK) '$(PAHOLE_AWK_PROGRAM)'") + PAHOLE_VARIABLES="" ifndef ARCH ARCH := $(shell uname -m | sed -e 's/i.86/i386/' \ diff --git a/nvidia-drm/nvidia-dma-fence-helper.h b/nvidia-drm/nvidia-dma-fence-helper.h index 731f6a7..663ddab 100644 --- a/nvidia-drm/nvidia-dma-fence-helper.h +++ b/nvidia-drm/nvidia-dma-fence-helper.h @@ -93,19 +93,19 @@ nv_dma_fence_default_wait(nv_dma_fence_t *fence, #endif } -static inline int nv_dma_fence_signal(nv_dma_fence_t *fence) { +static inline void nv_dma_fence_signal(nv_dma_fence_t *fence) { #if defined(NV_LINUX_FENCE_H_PRESENT) - return fence_signal(fence); + fence_signal(fence); #else - return dma_fence_signal(fence); + dma_fence_signal(fence); #endif } -static inline int nv_dma_fence_signal_locked(nv_dma_fence_t *fence) { +static inline void nv_dma_fence_signal_locked(nv_dma_fence_t *fence) { #if defined(NV_LINUX_FENCE_H_PRESENT) - return fence_signal_locked(fence); + fence_signal_locked(fence); #else - return dma_fence_signal_locked(fence); + dma_fence_signal_locked(fence); #endif } diff --git a/nvidia/nv-mmap.c b/nvidia/nv-mmap.c index 9351a27..1a52ba0 100644 --- a/nvidia/nv-mmap.c +++ b/nvidia/nv-mmap.c @@ -838,16 +838,22 @@ void NV_API_CALL nv_set_safe_to_mmap_locked( nvl->safe_to_mmap = safe_to_mmap; } +#if defined(VM_REFCNT_EXCLUDE_READERS_FLAG) +#define NV_VMA_LOCK_OFFSET VM_REFCNT_EXCLUDE_READERS_FLAG +#else +#define NV_VMA_LOCK_OFFSET VMA_LOCK_OFFSET +#endif + #if !NV_CAN_CALL_VMA_START_WRITE static NvBool nv_vma_enter_locked(struct vm_area_struct *vma, NvBool detaching) { - NvU32 tgt_refcnt = VMA_LOCK_OFFSET; + NvU32 tgt_refcnt = NV_VMA_LOCK_OFFSET; NvBool interrupted = NV_FALSE; if (!detaching) { tgt_refcnt++; } - if (!refcount_add_not_zero(VMA_LOCK_OFFSET, &vma->vm_refcnt)) + if (!refcount_add_not_zero(NV_VMA_LOCK_OFFSET, &vma->vm_refcnt)) { return NV_FALSE; } @@ -877,7 +883,7 @@ static NvBool nv_vma_enter_locked(struct vm_area_struct *vma, NvBool detaching) if (interrupted) { // Clean up on error: release refcount and dep_map - refcount_sub_and_test(VMA_LOCK_OFFSET, &vma->vm_refcnt); + refcount_sub_and_test(NV_VMA_LOCK_OFFSET, &vma->vm_refcnt); rwsem_release(&vma->vmlock_dep_map, _RET_IP_); return NV_FALSE; } @@ -893,7 +899,7 @@ void nv_vma_start_write(struct vm_area_struct *vma) { NvU32 mm_lock_seq; NvBool locked; - if (__is_vma_write_locked(vma, &mm_lock_seq)) + if (__is_vma_write_locked(vma)) return; locked = nv_vma_enter_locked(vma, NV_FALSE); @@ -902,7 +908,7 @@ void nv_vma_start_write(struct vm_area_struct *vma) if (locked) { NvBool detached; - detached = refcount_sub_and_test(VMA_LOCK_OFFSET, &vma->vm_refcnt); + detached = refcount_sub_and_test(NV_VMA_LOCK_OFFSET, &vma->vm_refcnt); rwsem_release(&vma->vmlock_dep_map, _RET_IP_); WARN_ON_ONCE(detached); }