]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.1-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 24 Jun 2015 14:56:30 +0000 (07:56 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 24 Jun 2015 14:56:30 +0000 (07:56 -0700)
added patches:
x86-boot-fix-overflow-warning-with-32-bit-binutils.patch

queue-4.1/series [new file with mode: 0644]
queue-4.1/x86-boot-fix-overflow-warning-with-32-bit-binutils.patch [new file with mode: 0644]

diff --git a/queue-4.1/series b/queue-4.1/series
new file mode 100644 (file)
index 0000000..9fc8b70
--- /dev/null
@@ -0,0 +1 @@
+x86-boot-fix-overflow-warning-with-32-bit-binutils.patch
diff --git a/queue-4.1/x86-boot-fix-overflow-warning-with-32-bit-binutils.patch b/queue-4.1/x86-boot-fix-overflow-warning-with-32-bit-binutils.patch
new file mode 100644 (file)
index 0000000..6b7f4f1
--- /dev/null
@@ -0,0 +1,58 @@
+From 04c17341b42699a5859a8afa05e64ba08a4e5235 Mon Sep 17 00:00:00 2001
+From: Borislav Petkov <bp@alien8.de>
+Date: Fri, 19 Jun 2015 13:49:06 +0200
+Subject: x86/boot: Fix overflow warning with 32-bit binutils
+
+From: Borislav Petkov <bp@alien8.de>
+
+commit 04c17341b42699a5859a8afa05e64ba08a4e5235 upstream.
+
+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: Michael Matz <matz@suse.de>
+Reported-and-tested-by: Enrico Mioso <mrkiko.rs@gmail.com>
+Signed-off-by: Borislav 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: Ingo Molnar <mingo@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/x86/kernel/head_32.S |   13 ++++++++++---
+ 1 file changed, 10 insertions(+), 3 deletions(-)
+
+--- a/arch/x86/kernel/head_32.S
++++ b/arch/x86/kernel/head_32.S
+@@ -62,9 +62,16 @@
+ #define PAGE_TABLE_SIZE(pages) ((pages) / PTRS_PER_PGD)
+ #endif
+-/* Number of possible pages in the lowmem region */
+-LOWMEM_PAGES = (((1<<32) - __PAGE_OFFSET) >> PAGE_SHIFT)
+-      
++/*
++ * Number of possible pages in the lowmem region.
++ *
++ * We shift 2 by 31 instead of 1 by 32 to the left in order to avoid a
++ * gas warning about overflowing shift count when gas has been compiled
++ * with only a host target support using a 32-bit type for internal
++ * representation.
++ */
++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