From patchwork Tue May 9 10:04:50 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 98890 Delivered-To: patch@linaro.org Received: by 10.140.96.100 with SMTP id j91csp1739391qge; Tue, 9 May 2017 03:05:14 -0700 (PDT) X-Received: by 10.99.127.80 with SMTP id p16mr23146387pgn.180.1494324314574; Tue, 09 May 2017 03:05:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1494324314; cv=none; d=google.com; s=arc-20160816; b=jMpzRd0uCIQsbBW8hdqGvApECRXEQmNlkfVajkMUDzpbLpyDWumUXC+GRK8KF1NtbF 7e6RmyFVx9XhIIxwSTCo5D9s8wHJswZHOP/IHhd9ISStpSXHYkAeTQ+CCuHZQ8El1TYN hgq4Q5Zpt57MM6ecsBswBQUdWKzPaZJgmNCc+BP7wjghY4ySRItwE7xC1UimP/eh9ebA a5UDlfQDdTVcY3fhsEiKwag3BPaAmZgmbc2QXLePnLCn2qqS9vhCBUV9oB+cLY7tRRL8 n612LxtLHtIxUpkd4bFyf0ntRpQw1wTuxea97kI0I67HIxFvoMCfBfQmE284UGx75ydD fB/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=LkcYtdL7teUMfjgcwC4RO6yDBhGcYM9llDI92shaOmk=; b=0d1EJrjg6SYkwnJvTOAzRhEIaW3Z03qBdUEGyoS6++fysunqLWR0L20ja4TMW/dozh tt7LUAfTS5Swsa8kGoDOsetJ3/ndoiHpZCek5o8/gLOyuibnNKfey0eCBvQ7QpcKjJsO 4sEq4Z1LFOkF/revPJKwK6YrKSAnWkQv3A8oR5aQndf+edsABc3X2xzANiFqXfnSBI09 2p0DbAOyWsaEMI2oTUj7v+4IBsF+TDt4qFKFUQcqo2qvbNoPbXrKC3hH/IrGCvGDA1As h30Ife1EZWGzos9vKvGadI/2GLAFmvR8n18P2z9zAG3tM0mJE0o2U69nPMWmjG9m7pqJ 29iw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h13si12805392pgn.51.2017.05.09.03.05.14; Tue, 09 May 2017 03:05:14 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751216AbdEIKFN (ORCPT + 6 others); Tue, 9 May 2017 06:05:13 -0400 Received: from mout.kundenserver.de ([212.227.126.134]:62307 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751295AbdEIKFL (ORCPT ); Tue, 9 May 2017 06:05:11 -0400 Received: from wuerfel.lan ([78.42.17.5]) by mrelayeu.kundenserver.de (mreue004 [212.227.15.129]) with ESMTPA (Nemesis) id 0MhPzK-1dLplm2yUk-00MatG; Tue, 09 May 2017 12:05:08 +0200 From: Arnd Bergmann To: Ben Hutchings Cc: stable@vger.kernel.org, Arnd Bergmann , Brian Norris Subject: [PATCH 3.16-stable 02/14] mtd: cfi: reduce stack size Date: Tue, 9 May 2017 12:04:50 +0200 Message-Id: <20170509100502.1358298-3-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 In-Reply-To: <20170509100502.1358298-1-arnd@arndb.de> References: <20170509100502.1358298-1-arnd@arndb.de> X-Provags-ID: V03:K0:p33shbSZbkBjh30UG0O42dRhakBbS2c1Uaaivrgi8NI9WOE4dLX 3pAMgMSMr1tipeFX9G2WbaYMWWkPDU3PiS+w4+etji20hYIU9H1uKkM7Ftz1ZL0/6wu8DQr YKlcA6UOrxa33fd1/c2p209bDevGXNsqZVS87lQwew+/lejnxfvYGU5x0dpcIaag3IYzxxQ +/2+43hmcL+dRFKgQijwg== X-UI-Out-Filterresults: notjunk:1; V01:K0:HqS7Duu7VXM=:i0b23xTqrK2WPuXn0KN2Pg t50QkE1edsHuWlPuaxzEIl2lejfHIlX54RwrT3V/tb6g8l5n+tB5239Zmmzpbd0VueJeFYZph J3lyNNKSR9VvaGkngxuPa5dF5aPzDjsID3KaNn7da2sZF1NJDXy8TxuCyLQ1Cy2S8q9BY5opG j6foDdAbvjl0SWgAqlhnyZZluNTVlom08n6b6Vb40i3VvnERb+iGbZ2zjtqoLSRcEtyZCHHt5 oFASnI2vlCe5vSlYJftrvG15eYG8dzYVXdl0OjMbeJdJr4THF0lpDsKoMNK99G2KV6ozmnHWc L8mfrCTQmj6theX3iB2bUEXsizPic4UnElU5bSbjd9Q8INSaUCaqzz/5pUdrBNca4/wuiosDO BVMmdwxEaRTYD1/m1ots6OWek1bReZg002O5/Qk/dQI8Ep7tznxynjB26kJYAmW+dIUsEnz8C 3P9ciLnzLkNmDOkcUiXiDMvLIx0sDJQqUOd9FKS9aAm6sUDnGEoKMFPWuhEFkyMv7udkRotzN rnlXFLDcIO6UuJCpl7rrRn9t45jVdI0b5IAV13D6LaAP75I/HBGYqS15J+pNimQ1k7OAVYODr XKGqqWXUZGmNm3CeUJGrN/G9PcrO3ubSW1bJNFBFY0DojFcJ0ZyhJZDxLj+rIH28p/HvRCceX C4GOEn0U2LMPI48Mi6rWDC05/7B+xQvRUZs+2uAAktM+ZtJn1paGqX2NkZrhowH5u8Jw= Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org Commit d09957fbb4d0b059b3176b510540df69048ad170 upstream. The cfi_staa_write_buffers function uses a large amount of kernel stack whenever CONFIG_MTD_MAP_BANK_WIDTH_32 is set, and that results in a warning on ARM allmodconfig builds: drivers/mtd/chips/cfi_cmdset_0020.c: In function 'cfi_staa_write_buffers': drivers/mtd/chips/cfi_cmdset_0020.c:651:1: warning: the frame size of 1208 bytes is larger than 1024 bytes [-Wframe-larger-than=] It turns out that this is largely a result of a suboptimal implementation of map_word_andequal(). Replacing this function with a straightforward one reduces the stack size in this function by exactly 200 bytes, shrinks the .text segment for this file from 27648 bytes to 26608 bytes, and makes the warning go away. Signed-off-by: Arnd Bergmann Signed-off-by: Brian Norris Signed-off-by: Arnd Bergmann --- include/linux/mtd/map.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) -- 2.9.0 diff --git a/include/linux/mtd/map.h b/include/linux/mtd/map.h index b501e9cd7d3e..db1dba23aed2 100644 --- a/include/linux/mtd/map.h +++ b/include/linux/mtd/map.h @@ -317,7 +317,17 @@ static inline map_word map_word_or(struct map_info *map, map_word val1, map_word return r; } -#define map_word_andequal(m, a, b, z) map_word_equal(m, z, map_word_and(m, a, b)) +static inline int map_word_andequal(struct map_info *map, map_word val1, map_word val2, map_word val3) +{ + int i; + + for (i = 0; i < map_words(map); i++) { + if ((val1.x[i] & val2.x[i]) != val3.x[i]) + return 0; + } + + return 1; +} static inline int map_word_bitsset(struct map_info *map, map_word val1, map_word val2) {