From patchwork Wed Apr 5 10:32:14 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Amit Pundir X-Patchwork-Id: 96832 Delivered-To: patch@linaro.org Received: by 10.140.89.233 with SMTP id v96csp196380qgd; Wed, 5 Apr 2017 03:34:30 -0700 (PDT) X-Received: by 10.99.163.72 with SMTP id v8mr29742223pgn.115.1491388470166; Wed, 05 Apr 2017 03:34:30 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l9si20203815pfi.300.2017.04.05.03.34.29; Wed, 05 Apr 2017 03:34:30 -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 S932692AbdDEKe2 (ORCPT + 6 others); Wed, 5 Apr 2017 06:34:28 -0400 Received: from mail-pf0-f173.google.com ([209.85.192.173]:34770 "EHLO mail-pf0-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933480AbdDEKdZ (ORCPT ); Wed, 5 Apr 2017 06:33:25 -0400 Received: by mail-pf0-f173.google.com with SMTP id 197so5599439pfv.1 for ; Wed, 05 Apr 2017 03:33:15 -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=iYb7Hdb9Ww5P1Yj6Np3skhetYigPyamREZALdklWVU2dKJI99mg07mVcawe7CWbt7A /1wiJhAQQfWHzGiphuVzugAiE1s7sr1+yIQnZrizjt1oP5o3iTYMYJlvWVYmZplGO9Ks ++/lgF7cBe9SZddzumd1naehh+40o9km7v6Zo= 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=n3jB99PmP5k3UXzGf7u6pNrTnup6i7u9xxIVcWQ+ofItZIgarrPKYfbVKmdkeYgc8Y 4eUT4Kt3Z4TjaSk3WUsWnXtX9Ahe5l/nLvc6rQM6UH56lw28R/Uncbvt0j02WSJVf2sJ a8rh/YysN7+6ShBm7XE32Rkgtc4UJeYMksEAIiwQbtN8d1GHYeW9Cxhr/pqVPPFwD9YQ JFN7qlrW93/5Aw7j3SuGMOlF3oHI2+N9N2QZ7rqizdyF+cd9pyPRFFCu7ee8xAVeOx4E 71svtUr9yvOxn7T5U1tPJkIugGJ6tcWYL2FGO0TW73xMLGBfdE8TVP78KWSYt3ZPAB3e 5L2w== X-Gm-Message-State: AFeK/H1yAlUawsGHa7ugxnqoaO4Bv4E8FHrnF6tztL/5hTT4Ncj7+JAtSbhTk7XBuBLiGSji X-Received: by 10.84.232.199 with SMTP id x7mr34505825plm.134.1491388395109; Wed, 05 Apr 2017 03:33:15 -0700 (PDT) Received: from localhost.localdomain ([106.51.240.246]) by smtp.gmail.com with ESMTPSA id a62sm36732075pgc.60.2017.04.05.03.33.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 05 Apr 2017 03:33:14 -0700 (PDT) From: Amit Pundir To: stable@vger.kernel.org Cc: gregkh@linuxfoundation.org, Arnd Bergmann , Kalle Valo Subject: [PATCH v2 for-4.9 22/32] rt2500usb: don't mark register accesses as inline Date: Wed, 5 Apr 2017 16:02:14 +0530 Message-Id: <1491388344-13521-23-git-send-email-amit.pundir@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1491388344-13521-1-git-send-email-amit.pundir@linaro.org> References: <1491388344-13521-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) {