Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756567AbbFPN6Y (ORCPT ); Tue, 16 Jun 2015 09:58:24 -0400 Received: from mail.skyhub.de ([78.46.96.112]:53437 "EHLO mail.skyhub.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756344AbbFPN6J (ORCPT ); Tue, 16 Jun 2015 09:58:09 -0400 Date: Tue, 16 Jun 2015 15:58:01 +0200 From: Borislav Petkov To: Enrico Mioso Cc: Michael Matz , linux-kernel@vger.kernel.org, x86-ml Subject: Re: X86 GIT GCC 5 compilation warning Message-ID: <20150616135801.GH17786@pd.tnic> References: <20150614180724.GB14892@pd.tnic> <20150615171750.GP4255@pd.tnic> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1844 Lines: 58 On Tue, Jun 16, 2015 at 02:47:02PM +0200, Michael Matz wrote: > Yeah, building like so on i686 will produce an assembler that warns on > "1<<32". Enrico, try this. --- From: Borislav Petkov Date: Tue, 16 Jun 2015 15:43:27 +0200 Subject: [PATCH] x86/head_32: Fix overflow warning with 32-bit binutils When building the kernel with 32-bit binutils built with support only for the i386 target, we get the following warning: arch/x86/kernel/head_32.S:66: Warning: shift count out of range (32 is not between 0 and 31) The problem is that in that case, binutils' internal type representation is 32-bit wide and the shift range overflows. In order to fix this, manipulate the shift expression which creates the 4GiB constant to not overflow the shift count. Reported-by: Enrico Mioso Suggested-by: Michael Matz Signed-off-by: Borislav Petkov --- arch/x86/kernel/head_32.S | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S index 53eeb226657c..c601d1de5ae5 100644 --- a/arch/x86/kernel/head_32.S +++ b/arch/x86/kernel/head_32.S @@ -63,8 +63,8 @@ #endif /* Number of possible pages in the lowmem region */ -LOWMEM_PAGES = (((1<<32) - __PAGE_OFFSET) >> PAGE_SHIFT) - +LOWMEM_PAGES = (((2<<31) - __PAGE_OFFSET) >> PAGE_SHIFT) + /* Enough space to fit pagetables for the low memory linear map */ MAPPING_BEYOND_END = PAGE_TABLE_SIZE(LOWMEM_PAGES) << PAGE_SHIFT -- 2.3.5 -- Regards/Gruss, Boris. ECO tip #101: Trim your mails when you reply. -- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/