From mboxrd@z Thu Jan 1 00:00:00 1970 Received: with ECARTIS (v1.0.0; list linux-mips); Sat, 16 Jun 2018 17:48:11 +0200 (CEST) Received: from mx2.mailbox.org ([80.241.60.215]:49600 "EHLO mx2.mailbox.org" rhost-flags-OK-OK-OK-OK) by eddie.linux-mips.org with ESMTP id S23993070AbeFPPsEYx7Qw (ORCPT ); Sat, 16 Jun 2018 17:48:04 +0200 Received: from smtp1.mailbox.org (smtp1.mailbox.org [80.241.60.240]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx2.mailbox.org (Postfix) with ESMTPS id ADF5B40F58; Sat, 16 Jun 2018 17:47:58 +0200 (CEST) X-Virus-Scanned: amavisd-new at heinlein-support.de Received: from smtp1.mailbox.org ([80.241.60.240]) by spamfilter01.heinlein-hosting.de (spamfilter01.heinlein-hosting.de [80.241.56.115]) (amavisd-new, port 10030) with ESMTP id Qe0F26bypRaq; Sat, 16 Jun 2018 17:47:57 +0200 (CEST) From: Hauke Mehrtens To: ralf@linux-mips.org, paul.burton@mips.com, jhogan@kernel.org Cc: linux-mips@linux-mips.org, ak@linux.intel.com, Hauke Mehrtens Subject: [PATCH] MIPS: remove const from mips_io_port_base Date: Sat, 16 Jun 2018 17:47:45 +0200 Message-Id: <20180616154745.28230-1-hauke@hauke-m.de> Return-Path: X-Envelope-To: <"|/home/ecartis/ecartis -s linux-mips"> (uid 0) X-Orcpt: rfc822;linux-mips@linux-mips.org Original-Recipient: rfc822;linux-mips@linux-mips.org X-archive-position: 64322 X-ecartis-version: Ecartis v1.0.0 Sender: linux-mips-bounce@linux-mips.org Errors-to: linux-mips-bounce@linux-mips.org X-original-sender: hauke@hauke-m.de Precedence: bulk List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: linux-mips X-List-ID: linux-mips List-subscribe: List-owner: List-post: List-archive: X-list: linux-mips This variable is changed by some platform init code. When LTO is used gcc assumes that the variable never changes and inlines the constant instead of checking this variable which is wrong. This fixes a runtime boot problem when LTO is activated. Signed-off-by: Hauke Mehrtens --- arch/mips/include/asm/io.h | 2 +- arch/mips/kernel/setup.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/mips/include/asm/io.h b/arch/mips/include/asm/io.h index a7d0b836f2f7..f28f8cd44dd3 100644 --- a/arch/mips/include/asm/io.h +++ b/arch/mips/include/asm/io.h @@ -60,7 +60,7 @@ * instruction, so the lower 16 bits must be zero. Should be true on * on any sane architecture; generic code does not use this assumption. */ -extern const unsigned long mips_io_port_base; +extern unsigned long mips_io_port_base; /* * Gcc will generate code to load the value of mips_io_port_base after each diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c index 2c96c0c68116..153460c531a9 100644 --- a/arch/mips/kernel/setup.c +++ b/arch/mips/kernel/setup.c @@ -75,7 +75,7 @@ static char __initdata builtin_cmdline[COMMAND_LINE_SIZE] = CONFIG_CMDLINE; * mips_io_port_base is the begin of the address space to which x86 style * I/O ports are mapped. */ -const unsigned long mips_io_port_base = -1; +unsigned long mips_io_port_base = -1; EXPORT_SYMBOL(mips_io_port_base); static struct resource code_resource = { .name = "Kernel code", }; -- 2.11.0