Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756634AbbHZI1B (ORCPT ); Wed, 26 Aug 2015 04:27:01 -0400 Received: from e28smtp01.in.ibm.com ([122.248.162.1]:46423 "EHLO e28smtp01.in.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756573AbbHZI0z (ORCPT ); Wed, 26 Aug 2015 04:26:55 -0400 X-Helo: d28dlp03.in.ibm.com X-MailFrom: aneesh.kumar@linux.vnet.ibm.com X-RcptTo: linux-kernel@vger.kernel.org From: "Aneesh Kumar K.V" To: benh@kernel.crashing.org, paulus@samba.org, mpe@ellerman.id.au, ryabinin.a.a@gmail.com Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, "Aneesh Kumar K.V" Subject: [PATCH V2 07/10] kasan: Make INLINE KASan support arch selectable Date: Wed, 26 Aug 2015 13:56:15 +0530 Message-Id: <1440577578-15813-8-git-send-email-aneesh.kumar@linux.vnet.ibm.com> X-Mailer: git-send-email 2.5.0 In-Reply-To: <1440577578-15813-1-git-send-email-aneesh.kumar@linux.vnet.ibm.com> References: <1440577578-15813-1-git-send-email-aneesh.kumar@linux.vnet.ibm.com> X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 15082608-4790-0000-0000-000009FE6647 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3311 Lines: 99 Some of the archs, may find it difficult to support inline KASan mode. Add HAVE_ARCH_KASAN_INLINE so that we can disable inline support at config time. Signed-off-by: Aneesh Kumar K.V --- arch/x86/Kconfig | 1 + lib/Kconfig.kasan | 2 ++ scripts/Makefile.kasan | 28 ++++++++++++++-------------- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index b3a1a5d77d92..4416f80580fb 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -78,6 +78,7 @@ config X86 select HAVE_ARCH_HUGE_VMAP if X86_64 || X86_PAE select HAVE_ARCH_JUMP_LABEL select HAVE_ARCH_KASAN if X86_64 && SPARSEMEM_VMEMMAP + select HAVE_ARCH_KASAN_INLINE if X86_64 && SPARSEMEM_VMEMMAP select HAVE_ARCH_KGDB select HAVE_ARCH_KMEMCHECK select HAVE_ARCH_SECCOMP_FILTER diff --git a/lib/Kconfig.kasan b/lib/Kconfig.kasan index 39f24d6721e5..e9d1bb1175b8 100644 --- a/lib/Kconfig.kasan +++ b/lib/Kconfig.kasan @@ -32,6 +32,7 @@ config KASAN_OUTLINE however it doesn't bloat size of kernel's .text section so much as inline does. +if HAVE_ARCH_KASAN_INLINE config KASAN_INLINE bool "Inline instrumentation" help @@ -40,6 +41,7 @@ config KASAN_INLINE it gives about x2 boost over outline instrumentation), but make kernel's .text size much bigger. This requires a gcc version of 5.0 or later. +endif endchoice diff --git a/scripts/Makefile.kasan b/scripts/Makefile.kasan index 3f874d24234f..c1c06e9e107a 100644 --- a/scripts/Makefile.kasan +++ b/scripts/Makefile.kasan @@ -1,29 +1,29 @@ ifdef CONFIG_KASAN -ifdef CONFIG_KASAN_INLINE - call_threshold := 10000 -else - call_threshold := 0 -endif - -CFLAGS_KASAN_MINIMAL := -fsanitize=kernel-address CFLAGS_KASAN := $(call cc-option, -fsanitize=kernel-address \ - -fasan-shadow-offset=$(CONFIG_KASAN_SHADOW_OFFSET) \ - --param asan-stack=1 --param asan-globals=1 \ - --param asan-instrumentation-with-call-threshold=$(call_threshold)) - -ifeq ($(call cc-option, $(CFLAGS_KASAN_MINIMAL) -Werror),) + --param asan-instrumentation-with-call-threshold=0) +ifeq ($(CFLAGS_KASAN),) ifneq ($(CONFIG_COMPILE_TEST),y) $(warning Cannot use CONFIG_KASAN: \ -fsanitize=kernel-address is not supported by compiler) endif else - ifeq ($(CFLAGS_KASAN),) + + ifdef CONFIG_KASAN_INLINE + CFLAGS_KASAN_INLINE := $(call cc-option, -fsanitize=kernel-address \ + -fasan-shadow-offset=$(CONFIG_KASAN_SHADOW_OFFSET) \ + --param asan-stack=1 --param asan-globals=1 \ + --param asan-instrumentation-with-call-threshold=10000) + + ifeq ($(CFLAGS_KASAN_INLINE),) ifneq ($(CONFIG_COMPILE_TEST),y) $(warning CONFIG_KASAN: compiler does not support all options.\ Trying minimal configuration) endif - CFLAGS_KASAN := $(CFLAGS_KASAN_MINIMAL) + else + CFLAGS_KASAN := $(CFLAGS_KASAN_INLINE) endif + endif + endif endif -- 2.5.0 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/