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 X-Spam-Level: X-Spam-Status: No, score=-17.4 required=3.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT, USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 62786C43603 for ; Fri, 20 Dec 2019 18:50:09 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 1C32A206DA for ; Fri, 20 Dec 2019 18:50:09 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="PH5vVSQg" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1C32A206DA Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=google.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id BA7728E01A5; Fri, 20 Dec 2019 13:50:08 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B7EF78E019D; Fri, 20 Dec 2019 13:50:08 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A43058E01A5; Fri, 20 Dec 2019 13:50:08 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 8A2048E019D for ; Fri, 20 Dec 2019 13:50:08 -0500 (EST) Received: from smtpin08.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with SMTP id 481B2180AD81A for ; Fri, 20 Dec 2019 18:50:08 +0000 (UTC) X-FDA: 76286409696.08.ear14_759089706a719 X-HE-Tag: ear14_759089706a719 X-Filterd-Recvd-Size: 5567 Received: from mail-qk1-f202.google.com (mail-qk1-f202.google.com [209.85.222.202]) by imf40.hostedemail.com (Postfix) with ESMTP for ; Fri, 20 Dec 2019 18:50:07 +0000 (UTC) Received: by mail-qk1-f202.google.com with SMTP id m13so2426303qka.9 for ; Fri, 20 Dec 2019 10:50:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=SD4iF/27yoEVQen1pxI/KwdFNlY5zBbTFGHvd8zysZk=; b=PH5vVSQgn5uKT/jxrVO9usDTxt4v1G8utX0kt+WD1d7Bt/NKvtC+V5r0GzBPsTMhoW THxvS0zDUYDiq+yyZRW9IHDJjEc7Xm5tJnfQK5qBpNVP84SuwEg06kNwq+CaY+2/z+L5 bVJIdkhvnmxbTaxsScrb7iEgVgge78/ef6eI3lI4r9Lm/gLxMxrUpOE1S2uVmtIwUltd r4GiKI+gDadUMYv0XIqb1omNmPNRiBrqt8MVgYtmNmjtDat+nDow/Up2B4BXh3fb+YKk KBzmc4dKXaIDPgPCOyF9vZBtcMYKuChS1NumnN3rdMnm0JpypnjAsgu/7ulnqrfd11um fx2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=SD4iF/27yoEVQen1pxI/KwdFNlY5zBbTFGHvd8zysZk=; b=Ta+TzU4c6jaIs9C9VMrnHRaDVpdWDJiWSq0OXNfp81s8ZW5VLCI5E8CdYzzl7I5UOq eXLcK6ceCqnsqcuEN6sMcj2JVLT3VRIBkblWbXjTZ5ZYB/PWjMfipCaTH0/+fr0R7JuL M/Xg8QsE8OPivQsTRB4Bt/sGNWas+hWlwl2gPlB3EQazWVOWiMJlkGcJCO9/WknbH1qI P7JuetKfSJgIMmcVmXfWT9jG3aaPK3CrriDEnw6Z45xnfcgJkElQTy+e2IbvWW639wr0 rZYvXVgWIw+ZC/PeI2tCOeKaSBMHQzgcgFKXrJbb3EH93P4xHeB+ni+e/efC0t/rFzR1 iY9w== X-Gm-Message-State: APjAAAVRMs/BifoeY6ksE+AJpB192nZbvMzFvFmH1pI3zG5T6/RtV3L8 r/FWGG6qEsihp+8wL6zW/Cl6Ig9nhts= X-Google-Smtp-Source: APXvYqyjAnNLnspS6deQKGjjyWN29kuGThybcae+aubBfloLtG5nV3LliL7EQqZ+GctyWgedM7iYv+NwmCU= X-Received: by 2002:a05:6214:190e:: with SMTP id er14mr13923906qvb.28.1576867807024; Fri, 20 Dec 2019 10:50:07 -0800 (PST) Date: Fri, 20 Dec 2019 19:49:15 +0100 In-Reply-To: <20191220184955.223741-1-glider@google.com> Message-Id: <20191220184955.223741-3-glider@google.com> Mime-Version: 1.0 References: <20191220184955.223741-1-glider@google.com> X-Mailer: git-send-email 2.24.1.735.g03f4e72817-goog Subject: [PATCH RFC v4 02/42] stackdepot: build with -fno-builtin From: glider@google.com To: Vegard Nossum , Dmitry Vyukov , Marco Elver , Andrey Konovalov , Sergey Senozhatsky , Arnd Bergmann , Andrey Ryabinin , linux-mm@kvack.org Cc: glider@google.com, viro@zeniv.linux.org.uk, adilger.kernel@dilger.ca, akpm@linux-foundation.org, luto@kernel.org, ard.biesheuvel@linaro.org, hch@infradead.org, hch@lst.de, darrick.wong@oracle.com, davem@davemloft.net, dmitry.torokhov@gmail.com, ebiggers@google.com, edumazet@google.com, ericvh@gmail.com, gregkh@linuxfoundation.org, harry.wentland@amd.com, herbert@gondor.apana.org.au, iii@linux.ibm.com, mingo@elte.hu, jasowang@redhat.com, axboe@kernel.dk, m.szyprowski@samsung.com, mark.rutland@arm.com, martin.petersen@oracle.com, schwidefsky@de.ibm.com, willy@infradead.org, mst@redhat.com, mhocko@suse.com, monstr@monstr.eu, pmladek@suse.com, cai@lca.pw, rdunlap@infradead.org, robin.murphy@arm.com, rostedt@goodmis.org, tiwai@suse.com, tytso@mit.edu, tglx@linutronix.de, gor@linux.ibm.com, wsa@the-dreams.de Content-Type: text/plain; charset="UTF-8" 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: Clang may replace stackdepot_memcmp() with a call to instrumented bcmp(), which is exactly what we wanted to avoid creating stackdepot_memcmp(). Building the file with -fno-builtin prevents such optimizations. Signed-off-by: Alexander Potapenko To: Alexander Potapenko Cc: Vegard Nossum Cc: Dmitry Vyukov Cc: Marco Elver Cc: Andrey Konovalov Cc: Sergey Senozhatsky Cc: Arnd Bergmann Cc: Andrey Ryabinin Cc: linux-mm@kvack.org --- This patch was previously called "stackdepot: prevent Clang from optimizing away stackdepot_memcmp()". v3: - use -fno-builtin instead of a barrier Change-Id: I4495b617b15c0ab003a61c1f0d54d0026fa8b144 --- lib/Makefile | 4 ++++ lib/stackdepot.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/Makefile b/lib/Makefile index 93217d44237f..066a6649e929 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -218,6 +218,10 @@ obj-$(CONFIG_MEMREGION) += memregion.o obj-$(CONFIG_STMP_DEVICE) += stmp_device.o obj-$(CONFIG_IRQ_POLL) += irq_poll.o +# stackdepot.c should not be instrumented or call instrumented functions. +# Prevent the compiler from calling builtins like memcmp() or bcmp() from this +# file. +CFLAGS_stackdepot.o += -fno-builtin obj-$(CONFIG_STACKDEPOT) += stackdepot.o KASAN_SANITIZE_stackdepot.o := n KCOV_INSTRUMENT_stackdepot.o := n diff --git a/lib/stackdepot.c b/lib/stackdepot.c index 1d3aab244897..9d33059d874c 100644 --- a/lib/stackdepot.c +++ b/lib/stackdepot.c @@ -163,7 +163,7 @@ int stackdepot_memcmp(const unsigned long *u1, const unsigned long *u2, unsigned int n) { for ( ; n-- ; u1++, u2++) { - if (*u1 != *u2) + if ((*u1) != (*u2)) return 1; } return 0; -- 2.24.1.735.g03f4e72817-goog