From patchwork Wed Jun 14 21:15:40 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 105587 Delivered-To: patch@linaro.org Received: by 10.140.91.77 with SMTP id y71csp489345qgd; Wed, 14 Jun 2017 14:19:27 -0700 (PDT) X-Received: by 10.99.60.30 with SMTP id j30mr1935841pga.18.1497475166968; Wed, 14 Jun 2017 14:19:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1497475166; cv=none; d=google.com; s=arc-20160816; b=vd6EjKuQ/QJkTjh05xV1ryQjJaNRW1XfQqly9mMD4CRwrvr7gO+hoQfM1go9OJE0Al xatyNo8++44iMRXafrGM2gEAOyQDvHpVV/U4COTofhl/UJPHFC1dFPpURfL9BVOSmhpP EjJVrq4kRmQJGEQH6ecnoSi08bfbIiSZz1/tqP6PeqSkI0Ql87SXEg8ptGthNpUT+5RA R+E/pg59cA9LVuXb5WnE+SUOV8EmYtDnYzKuLCAdi57/4vsRmzXeXv3oJdG4VrvPi2ha MAbH6z1VBjh6X0kL6WDKuhC7AmUt+AwhGbU/1Dny0wV4193I0YDzO4aKRlQHANwTa5Rl sEsw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:sender:content-transfer-encoding:mime-version:cc :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:references:in-reply-to:message-id:date:subject :to:from:dkim-signature:arc-authentication-results; bh=aVj7MOhjqK56jvpWeelHCrv302QuyDX0FfzgvaPDECU=; b=ZS84Wjdf19/nYTfrPUBzKOY759ANMYqc/2neW8W444YH27tP/Uv+gbG45/6hR2U144 3bK4QpChEuK/vvxuyFFJgsypCV61z4aAtRWAiLuyQWymuv4Y+HysG7MXURNwBlSbP7IG 4nvclAdYHbfFw59biCKQAh3dZUnVCMueEqhjzknvvl410v+dScKM/ZcSngy49l+8yOY0 at5/9Lw9ygOk8eJ9LEAstfd2wK50Z4tTikl+9o2fob+gH0hPNVtonoJYM+T62QTlBqtZ 4b5YHPXYleSVAegwg4FRAdpCVreCsmgyDD0VjURHYfH5cUpgzjC9TSChAeQEtgrDikA8 /L8A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@lists.infradead.org header.b=gJTZDHE3; spf=pass (google.com: best guess record for domain of linux-mtd-bounces+patch=linaro.org@lists.infradead.org designates 65.50.211.133 as permitted sender) smtp.mailfrom=linux-mtd-bounces+patch=linaro.org@lists.infradead.org Return-Path: Received: from bombadil.infradead.org (bombadil.infradead.org. [65.50.211.133]) by mx.google.com with ESMTPS id i5si728885pgt.253.2017.06.14.14.19.26 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Jun 2017 14:19:26 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-mtd-bounces+patch=linaro.org@lists.infradead.org designates 65.50.211.133 as permitted sender) client-ip=65.50.211.133; Authentication-Results: mx.google.com; dkim=pass header.i=@lists.infradead.org header.b=gJTZDHE3; spf=pass (google.com: best guess record for domain of linux-mtd-bounces+patch=linaro.org@lists.infradead.org designates 65.50.211.133 as permitted sender) smtp.mailfrom=linux-mtd-bounces+patch=linaro.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=aVj7MOhjqK56jvpWeelHCrv302QuyDX0FfzgvaPDECU=; b=gJTZDHE3/WBI65zbWvrTaAsCFf u94vk4+0l5GWfnw4EDc2pqZQI6L6Ndu/aMURzcuU3n73rqGCeiB9ryIDTuRMXPSzHtCz/pnMy9DGg 5eHZDw+0XNifn0xO4U25jMr4UEeWhbk5miQPf2ikbW2fQE1WPJhOCc2TcR3HARW5GsOqk4YIuPN/R P7HC5s+WglApPrQyPMxUyDYaWP01Z/iZBZ7fAE4BOyZtf0TPW61cVd0vKdEOkZ2axqef4zIj4Q0KS Cf2VrvZvZlORXPom6TEePxPA/gtmzQGfZimlS2ETz7WcdgktsVw3KTy0KQdAkzywaSOIUwHNvenWQ KGeXs9oA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1dLFhB-0005kk-VD; Wed, 14 Jun 2017 21:19:21 +0000 Received: from mout.kundenserver.de ([212.227.126.131]) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1dLFh8-0005jy-Eh for linux-mtd@lists.infradead.org; Wed, 14 Jun 2017 21:19:20 +0000 Received: from wuerfel.lan ([78.42.17.5]) by mrelayeu.kundenserver.de (mreue001 [212.227.15.129]) with ESMTPA (Nemesis) id 0LZZE4-1e6NCW2ZXo-00lV1U; Wed, 14 Jun 2017 23:18:48 +0200 From: Arnd Bergmann To: Andrew Morton Subject: [PATCH v2 05/11] mtd: cfi: reduce stack size with KASAN Date: Wed, 14 Jun 2017 23:15:40 +0200 Message-Id: <20170614211556.2062728-6-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 In-Reply-To: <20170614211556.2062728-1-arnd@arndb.de> References: <20170614211556.2062728-1-arnd@arndb.de> X-Provags-ID: V03:K0:jQtFtujOI91qHhjEQPhH7H4zwUM43AuU25lzsFzC5NvM61fke2d fPM9tJCtpFA7Bh/iNb+ZSdJILB5TsRmwo1kKna86flb+6473UgXJeJ/oQwpTgH3UWAToPIw T3tRuRY9Kfh38avCVBnN299oN7dJB/Y/XISLrR8HozKARgq4+QC9we+khnWNRwV3ECJ7xS6 0LUPt2NXQcHa/KScVOrFw== X-UI-Out-Filterresults: notjunk:1; V01:K0:NB66CqhOCl4=:fUCO0YsQ2DWGJIRmPe67M2 qHm9cFD0cUyhsuDVCird0XQpxv9nLw9jm6RMjYThXk1a596s/dtipqute8R0uI+zlbknTjzmN fZipwuJmbd5i9yx2XxQGXYoNGf4FwbyyKR4eAukLVmdz/O2az5qrovasMixOpPSgfiAThgqkt nU1trOZulUh+YLx5CJWBxrIyH5NAcU9hFQB30E8IrjNPLBLfrLECVa9m8Mf1MxjAaqb1qAsKS k3cqQgZ9axvpu7qWOBedjMCrrCdZ0hONX1GaR4LG/+yZ1Z9Tu8v7znjlCyZxuTKDLG85fXpyo VaQrN2TIhRfePrKXUdtIQjh0hCtFDgPvCOe4JsYK+swisLd77te8wzFPov+sgurtHIJOUYqrH F5Z5YBpUE+ISVAgVIsbNTnNXZwnAsurP0c+m8Qhy26aTaOlQAKGgG6oUewhIy0jcuS7gLeUJB wVDZrfIvajTh0tGEuc44VC1y2PdBO1xhDYEpK7yWz2U7N49rsCF2fSTvarxKQkx9wPZZ0LhGh e8rhX0LVZ5xJ9v6Wy0bwb8w/2jYhQIc9TJkEt7LwqJhD4W706mE+D0PNjGujoBL/ZoAX5Ze01 qDH1FziiGZILJYmD6cQy6C3ia6U65Mut0QcNHKHhSk3L8t/cMHmfmDaKrcZzPJ0AxvfcML3x3 954tZFPV3pHarO4VzcZ1Kt1vO0K9eXiJ7Lf3F86BE8LRvNNW8hawL167ZM0OHw0i6VLs= X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20170614_141918_871784_24FB8B50 X-CRM114-Status: GOOD ( 12.21 ) X-Spam-Score: -2.9 (--) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-2.9 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [212.227.126.131 listed in list.dnswl.org] -1.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [212.227.126.131 listed in wl.mailspike.net] -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Boris Brezillon , Arend van Spriel , Arnd Bergmann , netdev@vger.kernel.org, Cyrille Pitchen , linux-kernel@vger.kernel.org, kasan-dev@googlegroups.com, Marek Vasut , Alexander Potapenko , linux-mtd@lists.infradead.org, Richard Weinberger , Andrey Ryabinin , Brian Norris , David Woodhouse , Dmitry Vyukov MIME-Version: 1.0 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+patch=linaro.org@lists.infradead.org When CONFIG_KASAN is used, we consume a lot of extra stack space: drivers/mtd/chips/cfi_cmdset_0020.c: In function 'do_write_buffer': drivers/mtd/chips/cfi_cmdset_0020.c:603:1: error: the frame size of 2184 bytes is larger than 1536 bytes [-Werror=frame-larger-than=] drivers/mtd/chips/cfi_cmdset_0020.c: In function 'cfi_staa_erase_varsize': drivers/mtd/chips/cfi_cmdset_0020.c:972:1: error: the frame size of 1936 bytes is larger than 1536 bytes [-Werror=frame-larger-than=] drivers/mtd/chips/cfi_cmdset_0001.c: In function 'do_write_buffer': drivers/mtd/chips/cfi_cmdset_0001.c:1841:1: error: the frame size of 1776 bytes is larger than 1536 bytes [-Werror=frame-larger-than=] This marks some functions as noinline_if_stackbloat to keep reduce the overall stack size. Signed-off-by: Arnd Bergmann --- drivers/mtd/chips/cfi_cmdset_0020.c | 8 ++++---- include/linux/mtd/map.h | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) -- 2.9.0 ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/ diff --git a/drivers/mtd/chips/cfi_cmdset_0020.c b/drivers/mtd/chips/cfi_cmdset_0020.c index 7d342965f392..5eee5e883f55 100644 --- a/drivers/mtd/chips/cfi_cmdset_0020.c +++ b/drivers/mtd/chips/cfi_cmdset_0020.c @@ -244,7 +244,7 @@ static struct mtd_info *cfi_staa_setup(struct map_info *map) } -static inline int do_read_onechip(struct map_info *map, struct flchip *chip, loff_t adr, size_t len, u_char *buf) +static noinline_if_stackbloat int do_read_onechip(struct map_info *map, struct flchip *chip, loff_t adr, size_t len, u_char *buf) { map_word status, status_OK; unsigned long timeo; @@ -728,7 +728,7 @@ cfi_staa_writev(struct mtd_info *mtd, const struct kvec *vecs, } -static inline int do_erase_oneblock(struct map_info *map, struct flchip *chip, unsigned long adr) +static noinline_if_stackbloat int do_erase_oneblock(struct map_info *map, struct flchip *chip, unsigned long adr) { struct cfi_private *cfi = map->fldrv_priv; map_word status, status_OK; @@ -1029,7 +1029,7 @@ static void cfi_staa_sync (struct mtd_info *mtd) } } -static inline int do_lock_oneblock(struct map_info *map, struct flchip *chip, unsigned long adr) +static noinline_if_stackbloat int do_lock_oneblock(struct map_info *map, struct flchip *chip, unsigned long adr) { struct cfi_private *cfi = map->fldrv_priv; map_word status, status_OK; @@ -1175,7 +1175,7 @@ static int cfi_staa_lock(struct mtd_info *mtd, loff_t ofs, uint64_t len) } return 0; } -static inline int do_unlock_oneblock(struct map_info *map, struct flchip *chip, unsigned long adr) +static noinline_if_stackbloat int do_unlock_oneblock(struct map_info *map, struct flchip *chip, unsigned long adr) { struct cfi_private *cfi = map->fldrv_priv; map_word status, status_OK; diff --git a/include/linux/mtd/map.h b/include/linux/mtd/map.h index 3aa56e3104bb..29db74314db8 100644 --- a/include/linux/mtd/map.h +++ b/include/linux/mtd/map.h @@ -316,7 +316,7 @@ static inline map_word map_word_or(struct map_info *map, map_word val1, map_word return r; } -static inline int map_word_andequal(struct map_info *map, map_word val1, map_word val2, map_word val3) +static noinline_if_stackbloat int map_word_andequal(struct map_info *map, map_word val1, map_word val2, map_word val3) { int i; @@ -328,7 +328,7 @@ static inline int map_word_andequal(struct map_info *map, map_word val1, map_wor return 1; } -static inline int map_word_bitsset(struct map_info *map, map_word val1, map_word val2) +static noinline_if_stackbloat int map_word_bitsset(struct map_info *map, map_word val1, map_word val2) { int i; @@ -362,7 +362,7 @@ static inline map_word map_word_load(struct map_info *map, const void *ptr) return r; } -static inline map_word map_word_load_partial(struct map_info *map, map_word orig, const unsigned char *buf, int start, int len) +static noinline_if_stackbloat map_word map_word_load_partial(struct map_info *map, map_word orig, const unsigned char *buf, int start, int len) { int i; @@ -392,7 +392,7 @@ static inline map_word map_word_load_partial(struct map_info *map, map_word orig #define MAP_FF_LIMIT 8 #endif -static inline map_word map_word_ff(struct map_info *map) +static noinline_if_stackbloat map_word map_word_ff(struct map_info *map) { map_word r; int i;