From 7c46e49ce7ff3b0734593b5c572e45b3a6aed487 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 27 Feb 2018 19:37:07 +0100 Subject: [PATCH] 4.15-stable patches added patches: microblaze-fix-endian-handling.patch --- .../microblaze-fix-endian-handling.patch | 60 +++++++++++++++++++ queue-4.15/series | 1 + 2 files changed, 61 insertions(+) create mode 100644 queue-4.15/microblaze-fix-endian-handling.patch diff --git a/queue-4.15/microblaze-fix-endian-handling.patch b/queue-4.15/microblaze-fix-endian-handling.patch new file mode 100644 index 00000000000..b9599026622 --- /dev/null +++ b/queue-4.15/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.15/series b/queue-4.15/series index a3235ea9d89..39da8c8b918 100644 --- a/queue-4.15/series +++ b/queue-4.15/series @@ -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 -- 2.47.3