fix: mm: remove vmalloc_sync_(un)mappings() (v5.8)
[lttng-modules.git] / wrapper / vmalloc.h
index 54715b5741d6d775d11319bcb101b0f7e5d8cc0d..e78d99bb199c18c83a7ec89923783059b0f8d60e 100644 (file)
 
 #include <linux/kallsyms.h>
 #include <wrapper/kallsyms.h>
+#include <lttng-kernel-version.h>
 
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0))
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,8,0))
+
+/*
+ * wrapper_vmalloc_sync_mappings was removed in v5.8, the vmalloc mappings
+ * are now synchronized when they are created or torn down.
+ */
+static inline
+void wrapper_vmalloc_sync_mappings(void)
+{}
+
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) \
+  || LTTNG_KERNEL_RANGE(5,5,12, 5,6,0)            \
+  || LTTNG_KERNEL_RANGE(5,4,28, 5,5,0)            \
+  || LTTNG_KERNEL_RANGE(5,2,37, 5,3,0)            \
+  || LTTNG_KERNEL_RANGE(4,19,113, 4,20,0)         \
+  || LTTNG_KERNEL_RANGE(4,14,175, 4,15,0)         \
+  || LTTNG_KERNEL_RANGE(4,9,218, 4,10,0)          \
+  || LTTNG_KERNEL_RANGE(4,4,218, 4,5,0))         \
+  || LTTNG_UBUNTU_KERNEL_RANGE(4,15,18,97, 4,16,0,0) \
+  || LTTNG_UBUNTU_KERNEL_RANGE(5,0,21,48, 5,1,0,0)   \
+  || LTTNG_UBUNTU_KERNEL_RANGE(5,3,18,52, 5,4,0,0)
 
 static inline
 void wrapper_vmalloc_sync_mappings(void)
@@ -43,7 +64,7 @@ void wrapper_vmalloc_sync_mappings(void)
        }
 }
 
-#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0)) */
+#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0)) */
 
 /*
  * Map vmalloc_sync_mappings to vmalloc_sync_all() on kernels before 5.7.
@@ -68,11 +89,21 @@ void wrapper_vmalloc_sync_mappings(void)
        }
 }
 
-#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0)) */
+#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0)) */
 
 #else
 
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0))
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) \
+  || LTTNG_KERNEL_RANGE(5,5,12, 5,6,0)            \
+  || LTTNG_KERNEL_RANGE(5,4,28, 5,5,0)            \
+  || LTTNG_KERNEL_RANGE(5,2,37, 5,3,0)            \
+  || LTTNG_KERNEL_RANGE(4,19,113, 4,20,0)         \
+  || LTTNG_KERNEL_RANGE(4,14,175, 4,15,0)         \
+  || LTTNG_KERNEL_RANGE(4,9,218, 4,10,0)          \
+  || LTTNG_KERNEL_RANGE(4,4,218, 4,5,0))         \
+  || LTTNG_UBUNTU_KERNEL_RANGE(4,15,18,97, 4,18,0,0) \
+  || LTTNG_UBUNTU_KERNEL_RANGE(5,0,21,48, 5,1,0,0)   \
+  || LTTNG_UBUNTU_KERNEL_RANGE(5,3,18,52, 5,4,0,0)
 
 static inline
 void wrapper_vmalloc_sync_mappings(void)
@@ -80,7 +111,7 @@ void wrapper_vmalloc_sync_mappings(void)
        return vmalloc_sync_mappings();
 }
 
-#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0)) */
+#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0)) */
 
 static inline
 void wrapper_vmalloc_sync_mappings(void)
@@ -88,7 +119,7 @@ void wrapper_vmalloc_sync_mappings(void)
        return vmalloc_sync_all();
 }
 
-#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0)) */
+#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0)) */
 
 #endif
 
@@ -216,7 +247,7 @@ void *lttng_kvmalloc_node(unsigned long size, gfp_t flags, int node)
                 * Make sure we don't trigger recursive page faults in the
                 * tracing fast path.
                 */
-               wrapper_vmalloc_sync_all();
+               wrapper_vmalloc_sync_mappings();
        }
        return ret;
 }
This page took 0.02381 seconds and 4 git commands to generate.