aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/set_memory.h
diff options
context:
space:
mode:
authorMichael Ellerman <mpe@ellerman.id.au>2017-07-06 15:35:52 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2017-07-06 16:24:30 -0700
commit938f846492d6682584cbe4f3f19c4ebffec46311 (patch)
tree97790d3b02cbac5aa520cc318b3adfaa6e8f261c /include/linux/set_memory.h
parentscripts/spelling.txt: add a bunch more spelling mistakes (diff)
downloadlinux-dev-938f846492d6682584cbe4f3f19c4ebffec46311.tar.xz
linux-dev-938f846492d6682584cbe4f3f19c4ebffec46311.zip
provide linux/set_memory.h
Currently code that wants to use set_memory_ro() etc, needs to include asm/set_memory.h, which doesn't exist on all arches. Some code knows it only builds on arches which have the header, other code guards the inclusion with an #ifdef, neither is ideal. So create linux/set_memory.h. This always exists, so users don't need an #ifdef just to include the header. When CONFIG_ARCH_HAS_SET_MEMORY=y it includes asm/set_memory.h, otherwise it provides empty non-failing implementations. Link: http://lkml.kernel.org/r/1498717781-29151-1-git-send-email-mpe@ellerman.id.au Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Acked-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Kees Cook <keescook@chromium.org> Acked-by: Laura Abbott <labbott@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux/set_memory.h')
-rw-r--r--include/linux/set_memory.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/include/linux/set_memory.h b/include/linux/set_memory.h
new file mode 100644
index 000000000000..e5140648f638
--- /dev/null
+++ b/include/linux/set_memory.h
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2017, Michael Ellerman, IBM Corporation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License version
+ * 2 as published by the Free Software Foundation;
+ */
+#ifndef _LINUX_SET_MEMORY_H_
+#define _LINUX_SET_MEMORY_H_
+
+#ifdef CONFIG_ARCH_HAS_SET_MEMORY
+#include <asm/set_memory.h>
+#else
+static inline int set_memory_ro(unsigned long addr, int numpages) { return 0; }
+static inline int set_memory_rw(unsigned long addr, int numpages) { return 0; }
+static inline int set_memory_x(unsigned long addr, int numpages) { return 0; }
+static inline int set_memory_nx(unsigned long addr, int numpages) { return 0; }
+#endif
+
+#endif /* _LINUX_SET_MEMORY_H_ */