From 64facf96c47619326c92d6f7001b425cb217b6cd Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Wed, 23 Oct 2013 15:06:38 +0000 Subject: [PATCH] Update to 3.11.6 svn path=/dists/sid/linux/; revision=20733 --- debian/changelog | 9 +- ...uirk-for-asm-goto-miscompilation-bug.patch | 169 ------------------ debian/patches/series | 1 - 3 files changed, 8 insertions(+), 171 deletions(-) delete mode 100644 debian/patches/bugfix/all/compiler-gcc-4-add-quirk-for-asm-goto-miscompilation-bug.patch diff --git a/debian/changelog b/debian/changelog index c3ea787bf..5b50e5a97 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,11 @@ -linux (3.11.5-2) UNRELEASED; urgency=low +linux (3.11.6-1) UNRELEASED; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.11.6 + - random: run random_int_secret_init() run after all late_initcalls + - ext4: fix memory leak in xattr + - KVM: PPC: Book3S HV: Fix typo in saving DSCR + - ipc: Apply mainline changes up to 3.12-rc5 [ Ian Campbell ] * [armhf] Enable Xen and virtio for armmp and armmp-lpae as well as KVM for diff --git a/debian/patches/bugfix/all/compiler-gcc-4-add-quirk-for-asm-goto-miscompilation-bug.patch b/debian/patches/bugfix/all/compiler-gcc-4-add-quirk-for-asm-goto-miscompilation-bug.patch deleted file mode 100644 index 67389f23d..000000000 --- a/debian/patches/bugfix/all/compiler-gcc-4-add-quirk-for-asm-goto-miscompilation-bug.patch +++ /dev/null @@ -1,169 +0,0 @@ -From: Ingo Molnar -Date: Tue, 15 Oct 2013 08:23:51 +0200 -Subject: [PATCH] compiler/gcc4: Add quirk for 'asm goto' miscompilation bug -Origin: https://lkml.kernel.org/g/20131015062933.GB4666@gmail.com - -Fengguang Wu, Oleg Nesterov and Peter Zijlstra tracked down -a kernel crash to a GCC bug: GCC miscompiles certain 'asm goto' -constructs, as outlined here: - - http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670 - -Implement a workaround suggested by Jakub Jelinek. - -Reported-and-tested-by: Fengguang Wu -Reported-by: Oleg Nesterov -Reported-by: Peter Zijlstra -Suggested-by: Jakub Jelinek -Reviewed-by: Richard Henderson -Cc: Linus Torvalds -Cc: Andrew Morton -Cc: -Link: http://lkml.kernel.org/r/20131015062351.GA4666@gmail.com -Signed-off-by: Ingo Molnar ---- - arch/arm/include/asm/jump_label.h | 2 +- - arch/mips/include/asm/jump_label.h | 2 +- - arch/powerpc/include/asm/jump_label.h | 2 +- - arch/s390/include/asm/jump_label.h | 2 +- - arch/sparc/include/asm/jump_label.h | 2 +- - arch/x86/include/asm/cpufeature.h | 6 +++--- - arch/x86/include/asm/jump_label.h | 2 +- - include/linux/compiler-gcc4.h | 15 +++++++++++++++ - 8 files changed, 24 insertions(+), 9 deletions(-) - -diff --git a/arch/arm/include/asm/jump_label.h b/arch/arm/include/asm/jump_label.h -index bfc198c..863c892 100644 ---- a/arch/arm/include/asm/jump_label.h -+++ b/arch/arm/include/asm/jump_label.h -@@ -16,7 +16,7 @@ - - static __always_inline bool arch_static_branch(struct static_key *key) - { -- asm goto("1:\n\t" -+ asm_volatile_goto("1:\n\t" - JUMP_LABEL_NOP "\n\t" - ".pushsection __jump_table, \"aw\"\n\t" - ".word 1b, %l[l_yes], %c0\n\t" -diff --git a/arch/mips/include/asm/jump_label.h b/arch/mips/include/asm/jump_label.h -index 4d6d77e..e194f95 100644 ---- a/arch/mips/include/asm/jump_label.h -+++ b/arch/mips/include/asm/jump_label.h -@@ -22,7 +22,7 @@ - - static __always_inline bool arch_static_branch(struct static_key *key) - { -- asm goto("1:\tnop\n\t" -+ asm_volatile_goto("1:\tnop\n\t" - "nop\n\t" - ".pushsection __jump_table, \"aw\"\n\t" - WORD_INSN " 1b, %l[l_yes], %0\n\t" -diff --git a/arch/powerpc/include/asm/jump_label.h b/arch/powerpc/include/asm/jump_label.h -index ae098c4..f016bb6 100644 ---- a/arch/powerpc/include/asm/jump_label.h -+++ b/arch/powerpc/include/asm/jump_label.h -@@ -19,7 +19,7 @@ - - static __always_inline bool arch_static_branch(struct static_key *key) - { -- asm goto("1:\n\t" -+ asm_volatile_goto("1:\n\t" - "nop\n\t" - ".pushsection __jump_table, \"aw\"\n\t" - JUMP_ENTRY_TYPE "1b, %l[l_yes], %c0\n\t" -diff --git a/arch/s390/include/asm/jump_label.h b/arch/s390/include/asm/jump_label.h -index 6c32190..346b1c8 100644 ---- a/arch/s390/include/asm/jump_label.h -+++ b/arch/s390/include/asm/jump_label.h -@@ -15,7 +15,7 @@ - - static __always_inline bool arch_static_branch(struct static_key *key) - { -- asm goto("0: brcl 0,0\n" -+ asm_volatile_goto("0: brcl 0,0\n" - ".pushsection __jump_table, \"aw\"\n" - ASM_ALIGN "\n" - ASM_PTR " 0b, %l[label], %0\n" -diff --git a/arch/sparc/include/asm/jump_label.h b/arch/sparc/include/asm/jump_label.h -index 5080d16..ec2e2e2 100644 ---- a/arch/sparc/include/asm/jump_label.h -+++ b/arch/sparc/include/asm/jump_label.h -@@ -9,7 +9,7 @@ - - static __always_inline bool arch_static_branch(struct static_key *key) - { -- asm goto("1:\n\t" -+ asm_volatile_goto("1:\n\t" - "nop\n\t" - "nop\n\t" - ".pushsection __jump_table, \"aw\"\n\t" -diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h -index 47538a6..7290585 100644 ---- a/arch/x86/include/asm/cpufeature.h -+++ b/arch/x86/include/asm/cpufeature.h -@@ -373,7 +373,7 @@ static __always_inline __pure bool __static_cpu_has(u16 bit) - * Catch too early usage of this before alternatives - * have run. - */ -- asm goto("1: jmp %l[t_warn]\n" -+ asm_volatile_goto("1: jmp %l[t_warn]\n" - "2:\n" - ".section .altinstructions,\"a\"\n" - " .long 1b - .\n" -@@ -386,7 +386,7 @@ static __always_inline __pure bool __static_cpu_has(u16 bit) - : : "i" (X86_FEATURE_ALWAYS) : : t_warn); - #endif - -- asm goto("1: jmp %l[t_no]\n" -+ asm_volatile_goto("1: jmp %l[t_no]\n" - "2:\n" - ".section .altinstructions,\"a\"\n" - " .long 1b - .\n" -@@ -448,7 +448,7 @@ static __always_inline __pure bool _static_cpu_has_safe(u16 bit) - * have. Thus, we force the jump to the widest, 4-byte, signed relative - * offset even though the last would often fit in less bytes. - */ -- asm goto("1: .byte 0xe9\n .long %l[t_dynamic] - 2f\n" -+ asm_volatile_goto("1: .byte 0xe9\n .long %l[t_dynamic] - 2f\n" - "2:\n" - ".section .altinstructions,\"a\"\n" - " .long 1b - .\n" /* src offset */ -diff --git a/arch/x86/include/asm/jump_label.h b/arch/x86/include/asm/jump_label.h -index 3a16c14..0297669 100644 ---- a/arch/x86/include/asm/jump_label.h -+++ b/arch/x86/include/asm/jump_label.h -@@ -13,7 +13,7 @@ - - static __always_inline bool arch_static_branch(struct static_key *key) - { -- asm goto("1:" -+ asm_volatile_goto("1:" - STATIC_KEY_INITIAL_NOP - ".pushsection __jump_table, \"aw\" \n\t" - _ASM_ALIGN "\n\t" -diff --git a/include/linux/compiler-gcc4.h b/include/linux/compiler-gcc4.h -index 842de22..ded4299 100644 ---- a/include/linux/compiler-gcc4.h -+++ b/include/linux/compiler-gcc4.h -@@ -65,6 +65,21 @@ - #define __visible __attribute__((externally_visible)) - #endif - -+/* -+ * GCC 'asm goto' miscompiles certain code sequences: -+ * -+ * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670 -+ * -+ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek. -+ * Fixed in GCC 4.8.2 and later versions. -+ * -+ * (asm goto is automatically volatile - the naming reflects this.) -+ */ -+#if GCC_VERSION <= 40801 -+# define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0) -+#else -+# define asm_volatile_goto(x...) do { asm goto(x); } while (0) -+#endif - - #ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP - #if GCC_VERSION >= 40400 diff --git a/debian/patches/series b/debian/patches/series index ce67e8928..64c49e236 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -76,7 +76,6 @@ bugfix/m68k/ethernat-kconfig.patch # m68k IRQ bugfix bugfix/m68k/atari-irqs.patch -bugfix/all/compiler-gcc-4-add-quirk-for-asm-goto-miscompilation-bug.patch bugfix/all/crypto-ansi_cprng-Fix-off-by-one-error-in-non-block-.patch features/all/mvsas-Recognise-device-subsystem-9485-9485-as-88SE94.patch bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch