aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/Kconfig5
-rw-r--r--include/linux/poison.h16
2 files changed, 19 insertions, 2 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 6bf1f1ac478c..cbcbfdee3ee0 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -1247,6 +1247,11 @@ config ARCH_MEMORY_PROBE
1247 def_bool X86_64 1247 def_bool X86_64
1248 depends on MEMORY_HOTPLUG 1248 depends on MEMORY_HOTPLUG
1249 1249
1250config ILLEGAL_POINTER_VALUE
1251 hex
1252 default 0 if X86_32
1253 default 0xdead000000000000 if X86_64
1254
1250source "mm/Kconfig" 1255source "mm/Kconfig"
1251 1256
1252config HIGHPTE 1257config HIGHPTE
diff --git a/include/linux/poison.h b/include/linux/poison.h
index 7fc194aef8c2..2110a81c5e2a 100644
--- a/include/linux/poison.h
+++ b/include/linux/poison.h
@@ -2,13 +2,25 @@
2#define _LINUX_POISON_H 2#define _LINUX_POISON_H
3 3
4/********** include/linux/list.h **********/ 4/********** include/linux/list.h **********/
5
6/*
7 * Architectures might want to move the poison pointer offset
8 * into some well-recognized area such as 0xdead000000000000,
9 * that is also not mappable by user-space exploits:
10 */
11#ifdef CONFIG_ILLEGAL_POINTER_VALUE
12# define POISON_POINTER_DELTA _AC(CONFIG_ILLEGAL_POINTER_VALUE, UL)
13#else
14# define POISON_POINTER_DELTA 0
15#endif
16
5/* 17/*
6 * These are non-NULL pointers that will result in page faults 18 * These are non-NULL pointers that will result in page faults
7 * under normal circumstances, used to verify that nobody uses 19 * under normal circumstances, used to verify that nobody uses
8 * non-initialized list entries. 20 * non-initialized list entries.
9 */ 21 */
10#define LIST_POISON1 ((void *) 0x00100100) 22#define LIST_POISON1 ((void *) 0x00100100 + POISON_POINTER_DELTA)
11#define LIST_POISON2 ((void *) 0x00200200) 23#define LIST_POISON2 ((void *) 0x00200200 + POISON_POINTER_DELTA)
12 24
13/********** include/linux/timer.h **********/ 25/********** include/linux/timer.h **********/
14/* 26/*