From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1BF10C433F5 for ; Sat, 16 Oct 2021 01:11:46 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 83BA561037 for ; Sat, 16 Oct 2021 01:11:45 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 83BA561037 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=dabbelt.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=kvack.org Received: by kanga.kvack.org (Postfix) id A5189900002; Fri, 15 Oct 2021 21:11:44 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A00E06B0072; Fri, 15 Oct 2021 21:11:44 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8EFC0900002; Fri, 15 Oct 2021 21:11:44 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0227.hostedemail.com [216.40.44.227]) by kanga.kvack.org (Postfix) with ESMTP id 7CE4E6B006C for ; Fri, 15 Oct 2021 21:11:44 -0400 (EDT) Received: from smtpin12.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id 3673A1801E33B for ; Sat, 16 Oct 2021 01:11:44 +0000 (UTC) X-FDA: 78700523328.12.9B0D3E0 Received: from mail-pf1-f173.google.com (mail-pf1-f173.google.com [209.85.210.173]) by imf27.hostedemail.com (Postfix) with ESMTP id CB35770000A2 for ; Sat, 16 Oct 2021 01:11:42 +0000 (UTC) Received: by mail-pf1-f173.google.com with SMTP id d9so2567926pfl.6 for ; Fri, 15 Oct 2021 18:11:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dabbelt-com.20210112.gappssmtp.com; s=20210112; h=date:subject:in-reply-to:cc:from:to:message-id:mime-version :content-transfer-encoding; bh=ZnmWcpYjZ93+9/USsjI5yc08CI3gidamSDoWKAiSGj8=; b=GZKEtGQXS3effH9eTB7DvJ1KHialm9ycCtkHxx+6wj/8ovcnezOgoxlFNi6ojEvxLp vCAEn7ozv11GEu8EMAAO6Xf/S0e6bmp47qsDYuHAdVGUM9iRdKA8VHZB3NlFghC7sv46 FsXw9Erkf/aCnnEl9pWrTbV385gyLs43Hx18EXRAGlUMmVCL2D5ym2Kj2mhtIYRfBIqv Qrf9XHbOp6LKOl/7m7BM7QkcqNaIymW4OWH4GuGYKHpLO9HqrVXYSv7jB6TA7NC8DT11 6sMeUJvndfAQbJjDFrz+sehU5SVlaOfT3aJLAsvtfm2W+JQtKO5tINTrh0I7b0qI/gto kCMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:subject:in-reply-to:cc:from:to:message-id :mime-version:content-transfer-encoding; bh=ZnmWcpYjZ93+9/USsjI5yc08CI3gidamSDoWKAiSGj8=; b=gQvrtZVESWSqYJpbW4VsaWHuEZ56i9lhtF6YROTNVr9AlKPZvrmLRyfNOavEiAWNPf Vy5ssD61eDjvQTzj8ytcQI6rKTShGvWB+jcAVSAUmjmFoeZcICkLow4ydBDs0b7IuqA7 VtXd9fQ5S07r+KHVOCYkdtJKeScYblgAT5/JZLxAYHGUNfZIJqkX6xHFnKysNI3dY4Q3 L5O/4bCAGt9p7Aimo+QYPhKERZuzS739268t294PrWu+52ohKypWLb2MerDpfWN6Xeyu Mg8Jmp/st13P+PkCSZjosRWDJKVIsOznw2wtszGPxxeFwkk6nDmrbM+ibesa7VQSqaww vj/Q== X-Gm-Message-State: AOAM532INxLW/ogpF6AKaTOyF/DNJgpikhsvPrKC7Ldu1LzKC9DuLXxu c5wTHg7JlMXcDEWOefCriwONnA== X-Google-Smtp-Source: ABdhPJxxfRHsneRsqZjvSmgeS3HDNbLOMcOQWWbfnO+S3BjiB+68l3s3+LJr9/SMhEdp2RjiEUtLoA== X-Received: by 2002:aa7:8189:0:b0:44c:293a:31e4 with SMTP id g9-20020aa78189000000b0044c293a31e4mr14844220pfi.51.1634346702295; Fri, 15 Oct 2021 18:11:42 -0700 (PDT) Received: from localhost (76-210-143-223.lightspeed.sntcca.sbcglobal.net. [76.210.143.223]) by smtp.gmail.com with ESMTPSA id pj12sm6334412pjb.19.2021.10.15.18.11.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Oct 2021 18:11:41 -0700 (PDT) Date: Fri, 15 Oct 2021 18:11:41 -0700 (PDT) X-Google-Original-Date: Fri, 15 Oct 2021 18:11:19 PDT (-0700) Subject: Re: [PATCH] kasan: Always respect CONFIG_KASAN_STACK In-Reply-To: CC: nathan@kernel.org, elver@google.com, akpm@linux-foundation.org, ryabinin.a.a@gmail.com, glider@google.com, andreyknvl@gmail.com, dvyukov@google.com, ndesaulniers@google.com, Arnd Bergmann , kasan-dev@googlegroups.com, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, linux-riscv@lists.infradead.org, Paul Walmsley , aou@eecs.berkeley.edu, linux-mm@kvack.org From: Palmer Dabbelt To: alex@ghiti.fr Message-ID: Mime-Version: 1.0 (MHng) Content-Type: text/plain; charset=utf-8; format=flowed Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=dabbelt-com.20210112.gappssmtp.com header.s=20210112 header.b=GZKEtGQX; dmarc=none; spf=pass (imf27.hostedemail.com: domain of palmer@dabbelt.com designates 209.85.210.173 as permitted sender) smtp.mailfrom=palmer@dabbelt.com X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: CB35770000A2 X-Stat-Signature: 4iw9k99735c38td7qfin161hwo78dxg6 X-HE-Tag: 1634346702-405282 Content-Transfer-Encoding: quoted-printable X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Thu, 14 Oct 2021 11:31:00 PDT (-0700), alex@ghiti.fr wrote: > Hi Nathan, > > Le 14/10/2021 =C3=A0 18:55, Nathan Chancellor a =C3=A9crit=C2=A0: >> On Fri, Oct 08, 2021 at 11:46:55AM -0700, Palmer Dabbelt wrote: >>> On Thu, 23 Sep 2021 07:59:46 PDT (-0700), nathan@kernel.org wrote: >>>> On Thu, Sep 23, 2021 at 12:07:17PM +0200, Marco Elver wrote: >>>>> On Wed, 22 Sept 2021 at 22:55, Nathan Chancellor wrote: >>>>>> Currently, the asan-stack parameter is only passed along if >>>>>> CFLAGS_KASAN_SHADOW is not empty, which requires KASAN_SHADOW_OFFS= ET to >>>>>> be defined in Kconfig so that the value can be checked. In RISC-V'= s >>>>>> case, KASAN_SHADOW_OFFSET is not defined in Kconfig, which means t= hat >>>>>> asan-stack does not get disabled with clang even when CONFIG_KASAN= _STACK >>>>>> is disabled, resulting in large stack warnings with allmodconfig: >>>>>> >>>>>> drivers/video/fbdev/omap2/omapfb/displays/panel-lgphilips-lb035q02= .c:117:12: >>>>>> error: stack frame size (14400) exceeds limit (2048) in function >>>>>> 'lb035q02_connect' [-Werror,-Wframe-larger-than] >>>>>> static int lb035q02_connect(struct omap_dss_device *dssdev) >>>>>> ^ >>>>>> 1 error generated. >>>>>> >>>>>> Ensure that the value of CONFIG_KASAN_STACK is always passed along= to >>>>>> the compiler so that these warnings do not happen when >>>>>> CONFIG_KASAN_STACK is disabled. >>>>>> >>>>>> Link: https://github.com/ClangBuiltLinux/linux/issues/1453 >>>>>> References: 6baec880d7a5 ("kasan: turn off asan-stack for clang-8 = and earlier") >>>>>> Signed-off-by: Nathan Chancellor >>>>> >>>>> Reviewed-by: Marco Elver >>>> >>>> Thanks! >>>> >>>>> [ Which tree are you planning to take it through? ] >>>> >>>> Gah, I was intending for it to go through -mm, then I cc'd neither >>>> Andrew nor linux-mm... :/ Andrew, do you want me to resend or can yo= u >>>> grab it from LKML? >>> >>> Acked-by: Palmer Dabbelt >>> >>> (assuming you still want it through somewhere else) >> >> Thanks, it is now in mainline as commit 19532869feb9 ("kasan: always >> respect CONFIG_KASAN_STACK"). >> >>>>> Note, arch/riscv/include/asm/kasan.h mentions KASAN_SHADOW_OFFSET i= n >>>>> comment (copied from arm64). Did RISC-V just forget to copy over th= e >>>>> Kconfig option? >>>> >>>> I do see it defined in that file as well but you are right that they= did >>>> not copy the Kconfig logic, even though it was present in the tree w= hen >>>> RISC-V KASAN was implemented. Perhaps they should so that they get >>>> access to the other flags in the "else" branch? >>> >>> Ya, looks like we just screwed this up. I'm seeing some warnings lik= e >>> >>> cc1: warning: =E2=80=98-fsanitize=3Dkernel-address=E2=80=99 with = stack protection is not supported without =E2=80=98-fasan-shadow-offset=3D= =E2=80=99 for this target >> >> Hmmm, I thought I did a GCC build with this change but I must not have >> :/ >> >>> which is how I ended up here, I'm assuming that's what you're talking= about >>> here? LMK if you were planning on sending along a fix or if you want= me to >>> go figure it out. >> >> I took a look at moving the logic into Kconfig like arm64 before sendi= ng >> this change and I did not really understand it well enough to do so. I >> think it would be best if you were able to do that so that nothing get= s >> messed up. >> > > I'll do it tomorrow, I'm the last one who touched kasan on riscv :) Any luck? I tried what I think is the simple way to do it last week,=20 (merging with Linus' tree is turning these warnings into build=20 failures) but it's hanging on boot. Not sure what's going on diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index c3f3fd583e04..d3998b4a45f1 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -212,6 +212,12 @@ config PGTABLE_LEVELS config LOCKDEP_SUPPORT def_bool y =20 +config KASAN_SHADOW_OFFSET + hex + depends on KASAN_GENERIC + default 0xdfffffc800000000 if 64BIT + default 0xffffffff if 32BIT + source "arch/riscv/Kconfig.socs" source "arch/riscv/Kconfig.erratas" =20 diff --git a/arch/riscv/include/asm/kasan.h b/arch/riscv/include/asm/= kasan.h index a2b3d9cdbc86..b00f503ec124 100644 --- a/arch/riscv/include/asm/kasan.h +++ b/arch/riscv/include/asm/kasan.h @@ -30,8 +30,7 @@ #define KASAN_SHADOW_SIZE (UL(1) << ((CONFIG_VA_BITS - 1) - KAS= AN_SHADOW_SCALE_SHIFT)) #define KASAN_SHADOW_START KERN_VIRT_START #define KASAN_SHADOW_END (KASAN_SHADOW_START + KASAN_SHADOW_SI= ZE) -#define KASAN_SHADOW_OFFSET (KASAN_SHADOW_END - (1ULL << \ - (64 - KASAN_SHADOW_SCALE_SHIF= T))) +#define KASAN_SHADOW_OFFSET _AC(CONFIG_KASAN_SHADOW_OFFSET, UL) =20 void kasan_init(void); asmlinkage void kasan_early_init(void); > > Thanks, > > Alex > >> Cheers, >> Nathan >> >> _______________________________________________ >> linux-riscv mailing list >> linux-riscv@lists.infradead.org >> http://lists.infradead.org/mailman/listinfo/linux-riscv >>