]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.15-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 27 Feb 2018 18:37:07 +0000 (19:37 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 27 Feb 2018 18:37:07 +0000 (19:37 +0100)
added patches:
microblaze-fix-endian-handling.patch

queue-4.15/microblaze-fix-endian-handling.patch [new file with mode: 0644]
queue-4.15/series

diff --git a/queue-4.15/microblaze-fix-endian-handling.patch b/queue-4.15/microblaze-fix-endian-handling.patch
new file mode 100644 (file)
index 0000000..b959902
--- /dev/null
@@ -0,0 +1,60 @@
+From 71e7673dadfdae0605d4c1f66ecb4b045c79fe0f Mon Sep 17 00:00:00 2001
+From: Arnd Bergmann <arnd@arndb.de>
+Date: Tue, 2 Jan 2018 12:47:19 +0100
+Subject: microblaze: fix endian handling
+
+From: Arnd Bergmann <arnd@arndb.de>
+
+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 <arnd@arndb.de>
+Signed-off-by: Michal Simek <michal.simek@xilinx.com>
+Cc: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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/
index a3235ea9d89e7843bf9f2683096e213092ec85d4..39da8c8b9183b84b3e1c3e6d7f2e25e8cc08d7f2 100644 (file)
@@ -62,3 +62,4 @@ drm-amdgpu-avoid-leaking-pm-domain-on-driver-unbind-v2.patch
 drm-amdgpu-add-new-device-to-use-atpx-quirk.patch
 arm64-__show_regs-only-resolve-kernel-symbols-when-running-at-el1.patch
 drm-i915-breadcrumbs-ignore-unsubmitted-signalers.patch
+microblaze-fix-endian-handling.patch