From patchwork Tue Apr 4 06:18:02 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Amit Pundir X-Patchwork-Id: 96685 Delivered-To: patch@linaro.org Received: by 10.140.89.233 with SMTP id v96csp48275qgd; Mon, 3 Apr 2017 23:18:21 -0700 (PDT) X-Received: by 10.84.230.131 with SMTP id e3mr27232028plk.100.1491286701360; Mon, 03 Apr 2017 23:18:21 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a9si746909pgf.57.2017.04.03.23.18.21; Mon, 03 Apr 2017 23:18:21 -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; dkim=pass header.i=@linaro.org; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752234AbdDDGSU (ORCPT + 6 others); Tue, 4 Apr 2017 02:18:20 -0400 Received: from mail-pg0-f50.google.com ([74.125.83.50]:33817 "EHLO mail-pg0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750962AbdDDGSU (ORCPT ); Tue, 4 Apr 2017 02:18:20 -0400 Received: by mail-pg0-f50.google.com with SMTP id 21so142765313pgg.1 for ; Mon, 03 Apr 2017 23:18:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=gWWLtYgR+28iDYGboDx9FD+W2yEYNmZR099TamDo6KQ=; b=PuLQFmUTMYivehEXQxbYyKbxeGGWUN8Om0McvJlcx28SY9UvSbz5QnHiRNOWeq4sfQ hCPh7uUO7HHQvxa7kCiWhRW7Iixe7FdCpzWjM8uGRyn+KfSeisYlSw+TSHIxUh+TC0jN fjWYYcbkSZj2lr1ImMNV8TN4aL6SlnWo14kdg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=gWWLtYgR+28iDYGboDx9FD+W2yEYNmZR099TamDo6KQ=; b=Y5VYKRvFi22PZ9kwuLYocmv1T+9x0rB7CaySugyktaFwIlFhXYskq+pGpmTZTVC8LI kSPo7DQ0ENVUv6blAmxB9eg76fn7kTsPbhIOAGXigxlcR8Y28gchmivT8MdoxxfgB2TL nlo6ZyJfB0cdXvFz9uZBM5tSsoBMtdTw6mFRjTUWMgyVg9dihV+ZdIgqBY2DpMdmGs+v Blo5FH7uh0+nn1XfY6P/x878f0gk0+xUnYGLFqFZApZJxEDoWlUg7kuR1c/N5Edxdcbv jr6pSPlhXQRLUICjwd0dv9FSmEdGRc4K8+ZpW+PBZetclw72lSgTexuBkOsSDAxRvFIU 9YMQ== X-Gm-Message-State: AFeK/H1ny+ORdBGDwMnwgC2s05rZc4LHJf11QxqMU3h4WFHPjKpOLPmp9CYKQe8efUqKEdgu X-Received: by 10.98.142.26 with SMTP id k26mr7464293pfe.30.1491286699416; Mon, 03 Apr 2017 23:18:19 -0700 (PDT) Received: from localhost.localdomain ([106.51.240.246]) by smtp.gmail.com with ESMTPSA id m20sm29331500pgd.32.2017.04.03.23.18.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 03 Apr 2017 23:18:18 -0700 (PDT) From: Amit Pundir To: gregkh@linuxfoundation.org Cc: stable@vger.kernel.org, Arnd Bergmann , Kalle Valo Subject: [PATCH 23/33] rt2500usb: don't mark register accesses as inline Date: Tue, 4 Apr 2017 11:48:02 +0530 Message-Id: <1491286688-31314-4-git-send-email-amit.pundir@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1491286688-31314-1-git-send-email-amit.pundir@linaro.org> References: <1491286688-31314-1-git-send-email-amit.pundir@linaro.org> Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Arnd Bergmann When CONFIG_KASAN is set, we get a rather large stack here: drivers/net/wireless/ralink/rt2x00/rt2500usb.c: In function 'rt2500usb_set_device_state': drivers/net/wireless/ralink/rt2x00/rt2500usb.c:1074:1: error: the frame size of 3032 bytes is larger than 100 bytes [-Werror=frame-larger-than=] If we don't force those functions to be inline, the compiler can figure this out better itself and not inline the functions when doing so would be harmful, reducing the stack size to a merge 256 bytes. Note that there is another problem that manifests in this driver, as a result of the typecheck() macro causing even larger stack frames. Signed-off-by: Arnd Bergmann Signed-off-by: Kalle Valo (cherry picked from commit 7272416609126e8910b7f0d0e3dba008aa87830c) Signed-off-by: Amit Pundir --- drivers/net/wireless/ralink/rt2x00/rt2500usb.c | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) -- 2.7.4 diff --git a/drivers/net/wireless/ralink/rt2x00/rt2500usb.c b/drivers/net/wireless/ralink/rt2x00/rt2500usb.c index 2d64611..5b3aae3 100644 --- a/drivers/net/wireless/ralink/rt2x00/rt2500usb.c +++ b/drivers/net/wireless/ralink/rt2x00/rt2500usb.c @@ -55,7 +55,7 @@ MODULE_PARM_DESC(nohwcrypt, "Disable hardware encryption."); * If the csr_mutex is already held then the _lock variants must * be used instead. */ -static inline void rt2500usb_register_read(struct rt2x00_dev *rt2x00dev, +static void rt2500usb_register_read(struct rt2x00_dev *rt2x00dev, const unsigned int offset, u16 *value) { @@ -66,7 +66,7 @@ static inline void rt2500usb_register_read(struct rt2x00_dev *rt2x00dev, *value = le16_to_cpu(reg); } -static inline void rt2500usb_register_read_lock(struct rt2x00_dev *rt2x00dev, +static void rt2500usb_register_read_lock(struct rt2x00_dev *rt2x00dev, const unsigned int offset, u16 *value) { @@ -77,16 +77,7 @@ static inline void rt2500usb_register_read_lock(struct rt2x00_dev *rt2x00dev, *value = le16_to_cpu(reg); } -static inline void rt2500usb_register_multiread(struct rt2x00_dev *rt2x00dev, - const unsigned int offset, - void *value, const u16 length) -{ - rt2x00usb_vendor_request_buff(rt2x00dev, USB_MULTI_READ, - USB_VENDOR_REQUEST_IN, offset, - value, length); -} - -static inline void rt2500usb_register_write(struct rt2x00_dev *rt2x00dev, +static void rt2500usb_register_write(struct rt2x00_dev *rt2x00dev, const unsigned int offset, u16 value) { @@ -96,7 +87,7 @@ static inline void rt2500usb_register_write(struct rt2x00_dev *rt2x00dev, ®, sizeof(reg)); } -static inline void rt2500usb_register_write_lock(struct rt2x00_dev *rt2x00dev, +static void rt2500usb_register_write_lock(struct rt2x00_dev *rt2x00dev, const unsigned int offset, u16 value) { @@ -106,7 +97,7 @@ static inline void rt2500usb_register_write_lock(struct rt2x00_dev *rt2x00dev, ®, sizeof(reg), REGISTER_TIMEOUT); } -static inline void rt2500usb_register_multiwrite(struct rt2x00_dev *rt2x00dev, +static void rt2500usb_register_multiwrite(struct rt2x00_dev *rt2x00dev, const unsigned int offset, void *value, const u16 length) {