From: Greg Kroah-Hartman Date: Tue, 27 Feb 2018 18:36:45 +0000 (+0100) Subject: 4.14-stable patches X-Git-Tag: v3.18.97~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=40ce0597c9284069303f27ef0105acb596b8aa3c;p=thirdparty%2Fkernel%2Fstable-queue.git 4.14-stable patches added patches: m32r-fix-endianness-constraints.patch microblaze-fix-endian-handling.patch --- diff --git a/queue-4.14/m32r-fix-endianness-constraints.patch b/queue-4.14/m32r-fix-endianness-constraints.patch new file mode 100644 index 00000000000..452ae29e26f --- /dev/null +++ b/queue-4.14/m32r-fix-endianness-constraints.patch @@ -0,0 +1,56 @@ +From c95f121142a41c951fd62683a5574f2a7b37c573 Mon Sep 17 00:00:00 2001 +From: Geert Uytterhoeven +Date: Wed, 15 Nov 2017 17:31:18 -0800 +Subject: m32r: fix endianness constraints + +From: Geert Uytterhoeven + +commit c95f121142a41c951fd62683a5574f2a7b37c573 upstream. + +The m32r Kconfig provides both CPU_BIG_ENDIAN and CPU_LITTLE_ENDIAN +configuration options. As they are user-selectable and independent, +this allows invalid configurations: + + - All m32r defconfigs build a big endian kernel, but CPU_BIG_ENDIAN is + not set, causing compiler warnings like: + + include/linux/byteorder/big_endian.h:7:2: warning: #warning inconsistent configuration, needs CONFIG_CPU_BIG_ENDIAN [-Wcpp] + #warning inconsistent configuration, needs CONFIG_CPU_BIG_ENDIAN + ^ + + - Since commit 5bdfca6435b82944 ("m32r: define CPU_BIG_ENDIAN"), + building an allmodconfig or allyesconfig enables both + CONFIG_CPU_BIG_ENDIAN and CONFIG_CPU_LITTLE_ENDIAN. + While this did get rid of the warning above, both options are + obviously mutually exclusive. + +Fix this by making only CPU_LITTLE_ENDIAN configurable by the user, as +before, and by making sure exactly one of CPU_BIG_ENDIAN and +CPU_LITTLE_ENDIAN is always enabled. + +Link: http://lkml.kernel.org/r/1509361505-18150-1-git-send-email-geert@linux-m68k.org +Fixes: 5bdfca6435b82944 ("m32r: define CPU_BIG_ENDIAN") +Signed-off-by: Geert Uytterhoeven +Cc: Sudip Mukherjee +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Cc: Guenter Roeck +Signed-off-by: Greg Kroah-Hartman + +--- + arch/m32r/Kconfig | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/arch/m32r/Kconfig ++++ b/arch/m32r/Kconfig +@@ -196,8 +196,8 @@ config TIMER_DIVIDE + default "128" + + config CPU_BIG_ENDIAN +- bool "Generate big endian code" +- default n ++ bool ++ default !CPU_LITTLE_ENDIAN + + config CPU_LITTLE_ENDIAN + bool "Generate little endian code" diff --git a/queue-4.14/microblaze-fix-endian-handling.patch b/queue-4.14/microblaze-fix-endian-handling.patch new file mode 100644 index 00000000000..b9599026622 --- /dev/null +++ b/queue-4.14/microblaze-fix-endian-handling.patch @@ -0,0 +1,60 @@ +From 71e7673dadfdae0605d4c1f66ecb4b045c79fe0f Mon Sep 17 00:00:00 2001 +From: Arnd Bergmann +Date: Tue, 2 Jan 2018 12:47:19 +0100 +Subject: microblaze: fix endian handling + +From: Arnd Bergmann + +commit 71e7673dadfdae0605d4c1f66ecb4b045c79fe0f upstream. + +Building an allmodconfig kernel fails horribly because of +endian mismatch. It turns out that the -mlittle-endian +switch was not honored at all as we were using the wrong +Kconfig symbol and failing to apply CPUFLAGS to the CFLAGS. +Finally, the linker flags did not get set right. + +This addresses all three of those issues, which now lets +me build both big-endian and little-endian kernels for +testing. + +Fixes: 428dbf156cc5 ("arch: change default endian for microblaze") +Fixes: 206d3642d8ee ("arch/microblaze: add choice for endianness and update Makefile") +Signed-off-by: Arnd Bergmann +Signed-off-by: Michal Simek +Cc: Guenter Roeck +Signed-off-by: Greg Kroah-Hartman + +--- + arch/microblaze/Makefile | 17 +++++++++++------ + 1 file changed, 11 insertions(+), 6 deletions(-) + +--- a/arch/microblaze/Makefile ++++ b/arch/microblaze/Makefile +@@ -36,16 +36,21 @@ endif + CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_DIV) += -mno-xl-soft-div + CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_BARREL) += -mxl-barrel-shift + CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_PCMP_INSTR) += -mxl-pattern-compare +-CPUFLAGS-$(CONFIG_BIG_ENDIAN) += -mbig-endian +-CPUFLAGS-$(CONFIG_LITTLE_ENDIAN) += -mlittle-endian ++ ++ifdef CONFIG_CPU_BIG_ENDIAN ++KBUILD_CFLAGS += -mbig-endian ++KBUILD_AFLAGS += -mbig-endian ++LD += -EB ++else ++KBUILD_CFLAGS += -mlittle-endian ++KBUILD_AFLAGS += -mlittle-endian ++LD += -EL ++endif + + CPUFLAGS-1 += $(call cc-option,-mcpu=v$(CPU_VER)) + + # r31 holds current when in kernel mode +-KBUILD_CFLAGS += -ffixed-r31 $(CPUFLAGS-1) $(CPUFLAGS-2) +- +-LDFLAGS := +-LDFLAGS_vmlinux := ++KBUILD_CFLAGS += -ffixed-r31 $(CPUFLAGS-y) $(CPUFLAGS-1) $(CPUFLAGS-2) + + head-y := arch/microblaze/kernel/head.o + libs-y += arch/microblaze/lib/ diff --git a/queue-4.14/series b/queue-4.14/series index cdda46365e5..055afc110b6 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -52,3 +52,5 @@ drm-amdgpu-add-atpx-quirk-handling-v2.patch drm-amdgpu-avoid-leaking-pm-domain-on-driver-unbind-v2.patch drm-amdgpu-add-new-device-to-use-atpx-quirk.patch drm-i915-breadcrumbs-ignore-unsubmitted-signalers.patch +m32r-fix-endianness-constraints.patch +microblaze-fix-endian-handling.patch