Update: Use vmalloc_sync_mappings for stable kernels
[lttng-modules.git] / wrapper / vmalloc.h
index 54715b5741d6d775d11319bcb101b0f7e5d8cc0d..c7538ae98e4f8238b35e36923ea576afc19d1ee1 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,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))
 
 static inline
 void wrapper_vmalloc_sync_mappings(void)
@@ -43,7 +50,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 +75,17 @@ 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,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))
 
 static inline
 void wrapper_vmalloc_sync_mappings(void)
@@ -80,7 +93,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 +101,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 +229,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.024542 seconds and 4 git commands to generate.