From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-oi0-f68.google.com ([209.85.218.68]:35270 "EHLO mail-oi0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933397AbdEOOgq (ORCPT ); Mon, 15 May 2017 10:36:46 -0400 MIME-Version: 1.0 In-Reply-To: <20170515142520.GA13996@redhat.com> References: <20170515134711.2770374-1-arnd@arndb.de> <20170515142520.GA13996@redhat.com> From: Arnd Bergmann Date: Mon, 15 May 2017 16:36:45 +0200 Message-ID: (sfid-20170515_163738_370400_A39B2271) Subject: Re: [PATCH] rt2x00: improve calling conventions for register accessors To: Stanislaw Gruszka Cc: Helmut Schaa , Kalle Valo , Daniel Golle , Mathias Kresin , Johannes Berg , =?UTF-8?Q?Tomislav_Po=C5=BEega?= , Serge Vasilugin , Roman Yeryomin , linux-wireless , Networking , Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" Sender: linux-wireless-owner@vger.kernel.org List-ID: On Mon, May 15, 2017 at 4:28 PM, Stanislaw Gruszka wrote: > On Mon, May 15, 2017 at 03:46:55PM +0200, Arnd Bergmann wrote: >> With CONFIG_KASAN enabled and gcc-7, we get a warning about rather high >> stack usage (with a private patch set I have to turn on this warning, >> which I intend to get into the next kernel release): >> >> wireless/ralink/rt2x00/rt2800lib.c: In function 'rt2800_bw_filter_calibration': >> wireless/ralink/rt2x00/rt2800lib.c:7990:1: error: the frame size of 2144 bytes is larger than 1536 bytes [-Werror=frame-larger-than=] >> >> The problem is that KASAN inserts a redzone around each local variable that >> gets passed by reference, and the newly added function has a lot of them. >> We can easily avoid that here by changing the calling convention to have >> the output as the return value of the function. This should also results in >> smaller object code, saving around 4KB in .text with KASAN, or 2KB without >> KASAN. >> >> Fixes: 41977e86c984 ("rt2x00: add support for MT7620") >> Signed-off-by: Arnd Bergmann >> --- >> drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 319 +++++++++++++------------ >> 1 file changed, 164 insertions(+), 155 deletions(-) > > We have read(, &val) calling convention since forever in rt2x00 and that > was never a problem. I dislike to change that now to make some tools > happy, I think problem should be fixed in the tools instead. How about adding 'depends on !KASAN' in Kconfig instead? Arnd