• B
    x86/boot: Fix overflow warning with 32-bit binutils · 04c17341
    Borislav Petkov 提交于
    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: NMichael Matz <matz@suse.de>
    Reported-and-tested-by: NEnrico Mioso <mrkiko.rs@gmail.com>
    Signed-off-by: NBorislav 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: NIngo Molnar <mingo@kernel.org>
    04c17341
head_32.S 18.3 KB