• Borislav Petkov's avatar
    x86/boot: Fix overflow warning with 32-bit binutils · 04c17341
    Borislav Petkov authored
    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.
    Suggested-by: default avatarMichael Matz <matz@suse.de>
    Reported-and-tested-by: default avatarEnrico Mioso <mrkiko.rs@gmail.com>
    Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    04c17341
head_32.S 18.3 KB