{"id":817714,"url":"http://patchwork.ozlabs.org/api/patches/817714/?format=json","web_url":"http://patchwork.ozlabs.org/project/netdev/patch/20170922212930.620249-6-arnd@arndb.de/","project":{"id":7,"url":"http://patchwork.ozlabs.org/api/projects/7/?format=json","name":"Linux network development","link_name":"netdev","list_id":"netdev.vger.kernel.org","list_email":"netdev@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20170922212930.620249-6-arnd@arndb.de>","list_archive_url":null,"date":"2017-09-22T21:29:16","name":"[v4,5/9] r820t: fix r820t_write_reg for KASAN","commit_ref":null,"pull_url":null,"state":"not-applicable","archived":true,"hash":"8273ca635ab7a2478ea1f45b6b19d09d901dc6ff","submitter":{"id":30,"url":"http://patchwork.ozlabs.org/api/people/30/?format=json","name":"Arnd Bergmann","email":"arnd@arndb.de"},"delegate":{"id":34,"url":"http://patchwork.ozlabs.org/api/users/34/?format=json","username":"davem","first_name":"David","last_name":"Miller","email":"davem@davemloft.net"},"mbox":"http://patchwork.ozlabs.org/project/netdev/patch/20170922212930.620249-6-arnd@arndb.de/mbox/","series":[{"id":4712,"url":"http://patchwork.ozlabs.org/api/series/4712/?format=json","web_url":"http://patchwork.ozlabs.org/project/netdev/list/?series=4712","date":"2017-09-22T21:29:16","name":"bring back stack frame warning with KASAN","version":4,"mbox":"http://patchwork.ozlabs.org/series/4712/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/817714/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/817714/checks/","tags":{},"related":[],"headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xzRVp1R0Nz9t2l\n\tfor <patchwork-incoming@ozlabs.org>;\n\tSat, 23 Sep 2017 07:31:14 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1752701AbdIVVbL (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tFri, 22 Sep 2017 17:31:11 -0400","from mout.kundenserver.de ([212.227.126.131]:62236 \"EHLO\n\tmout.kundenserver.de\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1752554AbdIVVbH (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Fri, 22 Sep 2017 17:31:07 -0400","from wuerfel.lan ([95.208.190.237]) by mrelayeu.kundenserver.de\n\t(mreue002 [212.227.15.129]) with ESMTPA (Nemesis) id\n\t0LvN23-1dDklQ1MEl-010gHN; Fri, 22 Sep 2017 23:30:39 +0200"],"From":"Arnd Bergmann <arnd@arndb.de>","To":"Mauro Carvalho Chehab <mchehab@kernel.org>","Cc":"Arnd Bergmann <arnd@arndb.de>, Jiri Pirko <jiri@resnulli.us>, Arend van\n\tSpriel <arend.vanspriel@broadcom.com>, \n\tKalle Valo <kvalo@codeaurora.org>, \"David S. Miller\"\n\t<davem@davemloft.net>, Andrey Ryabinin <aryabinin@virtuozzo.com>,\n\tAlexander Potapenko <glider@google.com>, \n\tDmitry Vyukov <dvyukov@google.com>, Masahiro Yamada\n\t<yamada.masahiro@socionext.com>, Michal Marek <mmarek@suse.com>,\n\tAndrew Morton <akpm@linux-foundation.org>, Kees Cook\n\t<keescook@chromium.org>, Geert Uytterhoeven <geert@linux-m68k.org>,\n\tGreg Kroah-Hartman <gregkh@linuxfoundation.org>, \n\tlinux-media@vger.kernel.org, linux-kernel@vger.kernel.org, \n\tnetdev@vger.kernel.org, linux-wireless@vger.kernel.org, \n\tbrcm80211-dev-list.pdl@broadcom.com, brcm80211-dev-list@cypress.com,\n\tkasan-dev@googlegroups.com, linux-kbuild@vger.kernel.org,\n\tJakub Jelinek <jakub@gcc.gnu.org>, =?utf-8?q?Martin_Li=C5=A1ka?=\n\t<marxin@gcc.gnu.org>","Subject":"[PATCH v4 5/9] r820t: fix r820t_write_reg for KASAN","Date":"Fri, 22 Sep 2017 23:29:16 +0200","Message-Id":"<20170922212930.620249-6-arnd@arndb.de>","X-Mailer":"git-send-email 2.9.0","In-Reply-To":"<20170922212930.620249-1-arnd@arndb.de>","References":"<20170922212930.620249-1-arnd@arndb.de>","X-Provags-ID":"V03:K0:5UIKjDdx5TPWijAblgwl7fPHNso5cdYP6yvfBUx1aQikrLUEBtt\n\t3JmR6vce6Q/n1qhb+YBZTIXhRk5nRCXm3fSGYj0APAh6OwzjkyZS7S26iyhfOu87R01g8cy\n\tGs13V9lB68QQTivOr71Mp2TYHG+rIgzvCrsmrX82bEKf7UlDI3N0GVEM+XvCuvNPKZldWXA\n\t5u5sYfgDkub4gpPBPxTHQ==","X-UI-Out-Filterresults":"notjunk:1; V01:K0:pizOdsbHG8E=:w78jKMm6ZA8OuepjiBPngf\n\tFKd2F13xMVq4oCHcSvLbZAGbob+tHyPBB/ODXsXJ3nyl0AIIE/OQCfIzzn8TzgKxjYByu8AkT\n\tKfxyuFq/isash9U8KaacLU42uuidUWwLixcMxzEsFXjNGvZqBqqUM9IVJnbqiVlbce0qwQOGY\n\tfzsvoGpcyuri8zSDq2Ofw74UDxIE45tnBhyJXX89uwjtxVjOBX9N/bIlOurqA1ZfvoENdbTev\n\tFm8yGqwwjbtPjNIMbH9Sx9WMmMTrLVJaDaAv7Puv+mOyBdTSzyv7/C8pf2yJwpU7fqRnINg+o\n\tgo0OIQ4sQVoFQ0YB7/1jNXuHb50ZlQPmSb0HQXdTF9hblifbJQJ6j96AwpRRLUvmt/0EDsPZW\n\twjU3FGxt6YnoJprccDoSQnfZsyo5z2FY8eVAM2Di4wmR5BB1XlydIQtN3b708YJ8XZDxUy67D\n\tCkBkVFI448EIkA1M0v+rIaK5Rk4YtWdvObKd9fzaJLBWmAd/h8MWjKZcYsKSEEV9vo2c78zqe\n\tLaUIeX+mOGfIrfhHeKG3aAnu50r3HXIXFKY/H7So4ZdVm2cunI1dYEsnLn8vHH6QGtLq7OvgI\n\tu5qZmMuDFme6bhF1YbnvXroYJsUkBXOjfKXLnPazzZ/oqkn8vn2Anc8qR7zNNfTIfadHpbKPN\n\tDpUppigC6F0Hry+SI/0wqkSFE0iSKqiS1pOormKAvfdD7/ILlMOYgtFuo1aBsXkLZqczFiXU7\n\tQyWPV3FHRDNkSXEILbXwPnJ62GY/UzSgwqn/Jw==","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"},"content":"With CONFIG_KASAN, we get an overly long stack frame due to inlining\nthe register access functions:\n\ndrivers/media/tuners/r820t.c: In function 'generic_set_freq.isra.7':\ndrivers/media/tuners/r820t.c:1334:1: error: the frame size of 2880 bytes is larger than 2048 bytes [-Werror=frame-larger-than=]\n\nThis is caused by a gcc bug that has now been fixed in gcc-8.\nTo work around the problem, we can pass the register data\nthrough a local variable that older gcc versions can optimize\nout as well.\n\nLink: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81715\nSigned-off-by: Arnd Bergmann <arnd@arndb.de>\n---\n drivers/media/tuners/r820t.c | 13 ++++++++-----\n 1 file changed, 8 insertions(+), 5 deletions(-)","diff":"diff --git a/drivers/media/tuners/r820t.c b/drivers/media/tuners/r820t.c\nindex ba80376a3b86..d097eb04a0e9 100644\n--- a/drivers/media/tuners/r820t.c\n+++ b/drivers/media/tuners/r820t.c\n@@ -396,9 +396,11 @@ static int r820t_write(struct r820t_priv *priv, u8 reg, const u8 *val,\n \treturn 0;\n }\n \n-static int r820t_write_reg(struct r820t_priv *priv, u8 reg, u8 val)\n+static inline int r820t_write_reg(struct r820t_priv *priv, u8 reg, u8 val)\n {\n-\treturn r820t_write(priv, reg, &val, 1);\n+\tu8 tmp = val; /* work around GCC PR81715 with asan-stack=1 */\n+\n+\treturn r820t_write(priv, reg, &tmp, 1);\n }\n \n static int r820t_read_cache_reg(struct r820t_priv *priv, int reg)\n@@ -411,17 +413,18 @@ static int r820t_read_cache_reg(struct r820t_priv *priv, int reg)\n \t\treturn -EINVAL;\n }\n \n-static int r820t_write_reg_mask(struct r820t_priv *priv, u8 reg, u8 val,\n+static inline int r820t_write_reg_mask(struct r820t_priv *priv, u8 reg, u8 val,\n \t\t\t\tu8 bit_mask)\n {\n+\tu8 tmp = val;\n \tint rc = r820t_read_cache_reg(priv, reg);\n \n \tif (rc < 0)\n \t\treturn rc;\n \n-\tval = (rc & ~bit_mask) | (val & bit_mask);\n+\ttmp = (rc & ~bit_mask) | (tmp & bit_mask);\n \n-\treturn r820t_write(priv, reg, &val, 1);\n+\treturn r820t_write(priv, reg, &tmp, 1);\n }\n \n static int r820t_read(struct r820t_priv *priv, u8 reg, u8 *val, int len)\n","prefixes":["v4","5/9"]}