aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-09-22 19:01:16 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2017-09-22 19:01:16 -0400
commit4d9af767418bf085e067bae905ce8675fc0f36eb (patch)
tree99fc18f36e0d41e091f8ccd3d5cefc790f725d04
parentc17c02040bf0d186cebd3e66ff349f955575bf38 (diff)
parenta88dc7ba15cd4f4ef5102b5185f8fa7ff86e54e1 (diff)
Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
Pull arm64 fixes from Catalin Marinas: - #ifdef CONFIG_EFI around __efi_fpsimd_begin/end - Assembly code alignment reduced to 4 bytes from 16 - Ensure the kernel is compiled for LP64 (there are some arm64 compilers around defaulting to ILP32) - Fix arm_pmu_acpi memory leak on the error path * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: drivers/perf: arm_pmu_acpi: Release memory obtained by kasprintf arm64: ensure the kernel is compiled for LP64 arm64: relax assembly code alignment from 16 byte to 4 byte arm64: efi: Don't include EFI fpsimd save/restore code in non-EFI kernels
-rw-r--r--arch/arm64/Makefile5
-rw-r--r--arch/arm64/include/asm/linkage.h4
-rw-r--r--arch/arm64/kernel/fpsimd.c4
-rw-r--r--drivers/perf/arm_pmu_acpi.c1
4 files changed, 12 insertions, 2 deletions
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index 9b41f1e3b1a0..939b310913cf 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -50,17 +50,22 @@ KBUILD_CFLAGS += -fno-asynchronous-unwind-tables
50KBUILD_CFLAGS += $(call cc-option, -mpc-relative-literal-loads) 50KBUILD_CFLAGS += $(call cc-option, -mpc-relative-literal-loads)
51KBUILD_AFLAGS += $(lseinstr) $(brokengasinst) 51KBUILD_AFLAGS += $(lseinstr) $(brokengasinst)
52 52
53KBUILD_CFLAGS += $(call cc-option,-mabi=lp64)
54KBUILD_AFLAGS += $(call cc-option,-mabi=lp64)
55
53ifeq ($(CONFIG_CPU_BIG_ENDIAN), y) 56ifeq ($(CONFIG_CPU_BIG_ENDIAN), y)
54KBUILD_CPPFLAGS += -mbig-endian 57KBUILD_CPPFLAGS += -mbig-endian
55CHECKFLAGS += -D__AARCH64EB__ 58CHECKFLAGS += -D__AARCH64EB__
56AS += -EB 59AS += -EB
57LD += -EB 60LD += -EB
61LDFLAGS += -maarch64linuxb
58UTS_MACHINE := aarch64_be 62UTS_MACHINE := aarch64_be
59else 63else
60KBUILD_CPPFLAGS += -mlittle-endian 64KBUILD_CPPFLAGS += -mlittle-endian
61CHECKFLAGS += -D__AARCH64EL__ 65CHECKFLAGS += -D__AARCH64EL__
62AS += -EL 66AS += -EL
63LD += -EL 67LD += -EL
68LDFLAGS += -maarch64linux
64UTS_MACHINE := aarch64 69UTS_MACHINE := aarch64
65endif 70endif
66 71
diff --git a/arch/arm64/include/asm/linkage.h b/arch/arm64/include/asm/linkage.h
index 636c1bced7d4..1b266292f0be 100644
--- a/arch/arm64/include/asm/linkage.h
+++ b/arch/arm64/include/asm/linkage.h
@@ -1,7 +1,7 @@
1#ifndef __ASM_LINKAGE_H 1#ifndef __ASM_LINKAGE_H
2#define __ASM_LINKAGE_H 2#define __ASM_LINKAGE_H
3 3
4#define __ALIGN .align 4 4#define __ALIGN .align 2
5#define __ALIGN_STR ".align 4" 5#define __ALIGN_STR ".align 2"
6 6
7#endif 7#endif
diff --git a/arch/arm64/kernel/fpsimd.c b/arch/arm64/kernel/fpsimd.c
index 3a68cf38a6b3..f444f374bd7b 100644
--- a/arch/arm64/kernel/fpsimd.c
+++ b/arch/arm64/kernel/fpsimd.c
@@ -321,6 +321,8 @@ void kernel_neon_end(void)
321} 321}
322EXPORT_SYMBOL(kernel_neon_end); 322EXPORT_SYMBOL(kernel_neon_end);
323 323
324#ifdef CONFIG_EFI
325
324static DEFINE_PER_CPU(struct fpsimd_state, efi_fpsimd_state); 326static DEFINE_PER_CPU(struct fpsimd_state, efi_fpsimd_state);
325static DEFINE_PER_CPU(bool, efi_fpsimd_state_used); 327static DEFINE_PER_CPU(bool, efi_fpsimd_state_used);
326 328
@@ -370,6 +372,8 @@ void __efi_fpsimd_end(void)
370 kernel_neon_end(); 372 kernel_neon_end();
371} 373}
372 374
375#endif /* CONFIG_EFI */
376
373#endif /* CONFIG_KERNEL_MODE_NEON */ 377#endif /* CONFIG_KERNEL_MODE_NEON */
374 378
375#ifdef CONFIG_CPU_PM 379#ifdef CONFIG_CPU_PM
diff --git a/drivers/perf/arm_pmu_acpi.c b/drivers/perf/arm_pmu_acpi.c
index 0a9b78705ee8..3303dd8d8eb5 100644
--- a/drivers/perf/arm_pmu_acpi.c
+++ b/drivers/perf/arm_pmu_acpi.c
@@ -235,6 +235,7 @@ int arm_pmu_acpi_probe(armpmu_init_fn init_fn)
235 ret = armpmu_register(pmu); 235 ret = armpmu_register(pmu);
236 if (ret) { 236 if (ret) {
237 pr_warn("Failed to register PMU for CPU%d\n", cpu); 237 pr_warn("Failed to register PMU for CPU%d\n", cpu);
238 kfree(pmu->name);
238 return ret; 239 return ret;
239 } 240 }
240 } 241 }