diff options
author | Dmitry Vyukov <dvyukov@google.com> | 2016-11-30 18:54:13 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-11-30 19:32:52 -0500 |
commit | 045d599a286bc01daa3510d59272440a17b23c2e (patch) | |
tree | bf37eecc870d096102ba03c07c66f65076d7fbc9 | |
parent | f8ff04e2be0815b34d11a72d08473a383a3c9eb5 (diff) |
kasan: update kasan_global for gcc 7
kasan_global struct is part of compiler/runtime ABI. gcc revision
241983 has added a new field to kasan_global struct. Update kernel
definition of kasan_global struct to include the new field.
Without this patch KASAN is broken with gcc 7.
Link: http://lkml.kernel.org/r/1479219743-28682-1-git-send-email-dvyukov@google.com
Signed-off-by: Dmitry Vyukov <dvyukov@google.com>
Acked-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: <stable@vger.kernel.org> [4.0+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | include/linux/compiler-gcc.h | 4 | ||||
-rw-r--r-- | mm/kasan/kasan.h | 3 |
2 files changed, 6 insertions, 1 deletions
diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h index 432f5c97e18f..928e5ca0caee 100644 --- a/include/linux/compiler-gcc.h +++ b/include/linux/compiler-gcc.h | |||
@@ -263,7 +263,9 @@ | |||
263 | #endif | 263 | #endif |
264 | #endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP && !__CHECKER__ */ | 264 | #endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP && !__CHECKER__ */ |
265 | 265 | ||
266 | #if GCC_VERSION >= 50000 | 266 | #if GCC_VERSION >= 70000 |
267 | #define KASAN_ABI_VERSION 5 | ||
268 | #elif GCC_VERSION >= 50000 | ||
267 | #define KASAN_ABI_VERSION 4 | 269 | #define KASAN_ABI_VERSION 4 |
268 | #elif GCC_VERSION >= 40902 | 270 | #elif GCC_VERSION >= 40902 |
269 | #define KASAN_ABI_VERSION 3 | 271 | #define KASAN_ABI_VERSION 3 |
diff --git a/mm/kasan/kasan.h b/mm/kasan/kasan.h index e5c2181fee6f..03f4545b103d 100644 --- a/mm/kasan/kasan.h +++ b/mm/kasan/kasan.h | |||
@@ -53,6 +53,9 @@ struct kasan_global { | |||
53 | #if KASAN_ABI_VERSION >= 4 | 53 | #if KASAN_ABI_VERSION >= 4 |
54 | struct kasan_source_location *location; | 54 | struct kasan_source_location *location; |
55 | #endif | 55 | #endif |
56 | #if KASAN_ABI_VERSION >= 5 | ||
57 | char *odr_indicator; | ||
58 | #endif | ||
56 | }; | 59 | }; |
57 | 60 | ||
58 | /** | 61 | /** |