fix: mm: introduce vma->vm_flags wrapper functions (v6.3)
[lttng-modules.git] / include / wrapper / mm.h
CommitLineData
b7cdc182 1/* SPDX-License-Identifier: (GPL-2.0-only or LGPL-2.1-only)
7502f47a
FD
2 *
3 * wrapper/mm.h
4 *
5 * Copyright (C) 2018 Francis Deslauriers <francis.deslauriers@efficios.com>
6 */
7
8#ifndef _LTTNG_WRAPPER_MM_H
9#define _LTTNG_WRAPPER_MM_H
10
11#include <linux/mm.h>
12#include <linux/oom.h>
13
2df37e95 14#include <lttng/kernel-version.h>
7502f47a 15
23d91ab1
MJ
16#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,3,0))
17static inline
18void wrapper_vm_flags_set(struct vm_area_struct *vma,
19 vm_flags_t flags)
20{
21 vm_flags_set(vma, flags);
22}
23#else
24static inline
25void wrapper_vm_flags_set(struct vm_area_struct *vma,
26 vm_flags_t flags)
27{
28 vma->vm_flags |= flags;
29}
30#endif
31
5f4c791e 32#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,6,0) \
7502f47a
FD
33 || LTTNG_UBUNTU_KERNEL_RANGE(4,4,25,44, 4,5,0,0))
34
35/*
36 * Returns true if the current estimation of the number of page available is
37 * larger than the number of pages passed as parameter.
38 */
39static inline
40bool wrapper_check_enough_free_pages(unsigned long num_pages)
41{
42 return num_pages < si_mem_available();
43}
44
45#else
46
47static inline
48bool wrapper_check_enough_free_pages(unsigned long num_pages)
49{
50 /*
51 * The si_mem_available function is not available on this kernel. Since
52 * we can't reliably know if there is enough memory available, so we
53 * return true.
54 */
55 return true;
56}
57#endif
58
7502f47a 59#endif /* _LTTNG_WRAPPER_MM_H */
This page took 0.045851 seconds and 4 git commands to generate.