Received: by 10.223.185.116 with SMTP id b49csp217998wrg; Tue, 20 Feb 2018 19:37:30 -0800 (PST) X-Google-Smtp-Source: AH8x225tqkIM8nOt8zMm7Dv4yMkQQzpVLAxdw0EUVubtN0/gUIyf4LE/2SVNfKLqlIiR1M7jNN1X X-Received: by 2002:a17:902:694c:: with SMTP id k12-v6mr1718971plt.133.1519184250146; Tue, 20 Feb 2018 19:37:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519184250; cv=none; d=google.com; s=arc-20160816; b=r6iMaWd+eIDW5sjmpZHAEOmtJEOsXY1qASD//61XEb3CNJMz8TitXfeABSdirndk83 xrFZyoR4wuYK8tuZK2WNaFmJhLCN54ZBDbKQPMbgCLwU+yxNhvoRPOv02fA96nmBntoj WoOpd5ZvKNWKWFG67v4ZAUQ/+9OaOs85Qe8O4L+RaTolOSpsn8nSt61YJvbQz9vmoCdd MBYFks1r/OcPk9kpO+UL1xr8IB9PRTgrBBcwtHE6iem+0AWMZheuLQNW+JrNwlnWosxB zaS3tMDJtHa74GXIFW+thwq7Q+bVotWGDdW6aPD/iQcWDBNg/BpmquqlNEIBKsrH9tN7 Yh7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :message-id:in-reply-to:subject:cc:to:from:date:dkim-signature :arc-authentication-results; bh=UADEyssyWMWInEADr7AzDb/VloTD3tB9bHcdULKuyJM=; b=hH73RHr3xsK5LhapOjAMdl+FilTht9ILQWmhoPNL8ksl1D3nVtiuvbOwCrSvvnS7nl xQuePFXAqFYMdT0Kim/E9pIdCwBFwl6echS4uQXeel8Rg0gdXT1nR/21Nauvmmrz8QdH d90ROGdV/TTosAuZZlUYEI6k1CRNNVU5PERYvzuCSKJAiX4WlyObKfU0e39Nzj+lPX/R FEyVt09ADJBbPmjKvgz7QPtG+rTW30seXuYhK8ASWRnqSRPcvDGZpd6Zzo+LUPgqKYK2 0ltDibjMpI5LcWydkM2TGpA+MfCItIsbUBRlNG6QWjwmB80Jf24V54AUE8cZMT7lCP5t sKaw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=UDSG6FWp; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c10si10190599pge.396.2018.02.20.19.37.15; Tue, 20 Feb 2018 19:37:30 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-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 header.s=google header.b=UDSG6FWp; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-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 S1751412AbeBUD0Z (ORCPT + 99 others); Tue, 20 Feb 2018 22:26:25 -0500 Received: from mail-qt0-f196.google.com ([209.85.216.196]:43487 "EHLO mail-qt0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751180AbeBUD0Y (ORCPT ); Tue, 20 Feb 2018 22:26:24 -0500 Received: by mail-qt0-f196.google.com with SMTP id d26so321539qtk.10 for ; Tue, 20 Feb 2018 19:26:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:in-reply-to:message-id:references :user-agent:mime-version; bh=UADEyssyWMWInEADr7AzDb/VloTD3tB9bHcdULKuyJM=; b=UDSG6FWpR+nEEN9EUMg53i3lz+iFMV7qiO3GfmayLR4+oUlSen939Sp69LvpvaXgvy pJ2o1VaP76kD9NJRgKxVgRBMx6OXkFBGCYysTz0aT0+j0wa+f+0vtOlyg0g0QmPfO40L oT6LQJ0NUQtVYeko/Kz49PHUfDPkDyh7xfW0I= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:in-reply-to:message-id :references:user-agent:mime-version; bh=UADEyssyWMWInEADr7AzDb/VloTD3tB9bHcdULKuyJM=; b=rGiiD3B2naaqKPgfklMTjq7yVIv3GSEy5UJWziCP1rXHusOkMb9xZt2JUEl3zBjHwa rU71TLsLHCVjuuuM8RACeJKB9dVVCNsHug6YRj4HfXPacCiRXM1J8Uw0/hKn4pBIHVYr egNonb0pWElq6TiNObvcbAov4E31OIbVZ9fjd8al7WSUCsSdq7TqrpZatWSRU5nPb3YL 4AbKjacbkPQci4mhTaRa/Ifyyc1LmvEdnweaqGPVWzX6LRlVV1k72F9G9trS8EDFZ5FO xUWeQrHUM67rkeuS6/NTQYiTS24H+xUDa2oYrV2OQI+E+wjhMQODWwRmV4X6Ef1XiyQE Ju5w== X-Gm-Message-State: APf1xPDJi2THnVG+KF2Yq7oB5kkARKAHiPYIDY/W0rS81iwZt59pNS6/ JFuGp+7bYsrNQTuxxqTcusL4Ow== X-Received: by 10.200.80.78 with SMTP id h14mr3055986qtm.211.1519183584077; Tue, 20 Feb 2018 19:26:24 -0800 (PST) Received: from xanadu.home (modemcable228.104-82-70.mc.videotron.ca. [70.82.104.228]) by smtp.gmail.com with ESMTPSA id b25sm2207324qte.40.2018.02.20.19.26.23 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 20 Feb 2018 19:26:23 -0800 (PST) Date: Tue, 20 Feb 2018 22:26:22 -0500 (EST) From: Nicolas Pitre To: Arnd Bergmann cc: Andi Kleen , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 5/7] ARM: fix __inflate_kernel_data stack warning for LTO In-Reply-To: <20180220215954.4092811-6-arnd@arndb.de> Message-ID: References: <20180220215954.4092811-1-arnd@arndb.de> <20180220215954.4092811-6-arnd@arndb.de> User-Agent: Alpine 2.21 (LFD 202 2017-01-01) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 20 Feb 2018, Arnd Bergmann wrote: > Commit ca8b5d97d6bf ("ARM: XIP kernel: store .data compressed in ROM") > moved the decompressor workspace to the stack and added a compiler > flag to avoid the stack size warning. > > With LTO, that warning comes back. Moving the workspace into an initdata > variable avoids that warning but presumably also undoes the optimization. Not only that, but it will probably crash at run time. What this code does is uncompressing initialized data to memory, _including_ initdata. So you'll end up overwriting your inflate_state while decompressing. > We could also try disabling the warning locally in that file with > _Pragma("GCC disagnostic"), but we lack a little bit of infrastructure > to do that nicely. Your patch #1/7 showed issues with the final part of this feature anyway, so my suggestion for that patch will take care of this one too for the time being. > > Signed-off-by: Arnd Bergmann > --- > arch/arm/kernel/Makefile | 3 --- > arch/arm/kernel/head-inflate-data.c | 3 ++- > 2 files changed, 2 insertions(+), 4 deletions(-) > > diff --git a/arch/arm/kernel/Makefile b/arch/arm/kernel/Makefile > index b59ac4bf82b8..2e8d40d442a2 100644 > --- a/arch/arm/kernel/Makefile > +++ b/arch/arm/kernel/Makefile > @@ -88,9 +88,6 @@ head-y := head$(MMUEXT).o > obj-$(CONFIG_DEBUG_LL) += debug.o > obj-$(CONFIG_EARLY_PRINTK) += early_printk.o > > -# This is executed very early using a temporary stack when no memory allocator > -# nor global data is available. Everything has to be allocated on the stack. > -CFLAGS_head-inflate-data.o := $(call cc-option,-Wframe-larger-than=10240) > obj-$(CONFIG_XIP_DEFLATED_DATA) += head-inflate-data.o > > obj-$(CONFIG_ARM_VIRT_EXT) += hyp-stub.o > diff --git a/arch/arm/kernel/head-inflate-data.c b/arch/arm/kernel/head-inflate-data.c > index 6dd0ce5e6058..b208c4541bd1 100644 > --- a/arch/arm/kernel/head-inflate-data.c > +++ b/arch/arm/kernel/head-inflate-data.c > @@ -35,10 +35,11 @@ extern char _sdata[]; > * stack then there is no need to clean up before returning. > */ > > +static __initdata struct inflate_state state; > + > int __init __inflate_kernel_data(void) > { > struct z_stream_s stream, *strm = &stream; > - struct inflate_state state; > char *in = __data_loc; > int rc; > > -- > 2.9.0 > >