Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux

Pull arm64 fixes from Will Deacon:
"The trickle of arm64 fixes continues to come in.

Nothing that's the end of the world, but we've got a fix for PCI IO
port accesses, an accidental naked "asm goto" and a fix to the
vmcoreinfo PT_NOTE merged this time around which we'd like to get
sorted before it becomes ABI.

- Fix ioport_map() mapping the wrong physical address for some I/O
BARs

- Remove direct use of "asm goto", since some compilers don't like
that

- Ensure kimage_voffset is always present in vmcoreinfo PT_NOTE"

* tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
asm-generic: io: Fix ioport_map() for !CONFIG_GENERIC_IOMAP && CONFIG_INDIRECT_PIO
arm64: kernel: arch_crash_save_vmcoreinfo() should depend on CONFIG_CRASH_CORE
arm64: jump_label.h: use asm_volatile_goto macro instead of "asm goto"

+24 -14
+2 -2
arch/arm64/include/asm/jump_label.h
··· 28 28 29 29 static __always_inline bool arch_static_branch(struct static_key *key, bool branch) 30 30 { 31 - asm goto("1: nop\n\t" 31 + asm_volatile_goto("1: nop\n\t" 32 32 ".pushsection __jump_table, \"aw\"\n\t" 33 33 ".align 3\n\t" 34 34 ".quad 1b, %l[l_yes], %c0\n\t" ··· 42 42 43 43 static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch) 44 44 { 45 - asm goto("1: b %l[l_yes]\n\t" 45 + asm_volatile_goto("1: b %l[l_yes]\n\t" 46 46 ".pushsection __jump_table, \"aw\"\n\t" 47 47 ".align 3\n\t" 48 48 ".quad 1b, %l[l_yes], %c0\n\t"
+1
arch/arm64/kernel/Makefile
··· 54 54 arm64-obj-$(CONFIG_ARM64_RELOC_TEST) += arm64-reloc-test.o 55 55 arm64-reloc-test-y := reloc_test_core.o reloc_test_syms.o 56 56 arm64-obj-$(CONFIG_CRASH_DUMP) += crash_dump.o 57 + arm64-obj-$(CONFIG_CRASH_CORE) += crash_core.o 57 58 arm64-obj-$(CONFIG_ARM_SDE_INTERFACE) += sdei.o 58 59 arm64-obj-$(CONFIG_ARM64_SSBD) += ssbd.o 59 60
+19
arch/arm64/kernel/crash_core.c
··· 1 + // SPDX-License-Identifier: GPL-2.0 2 + /* 3 + * Copyright (C) Linaro. 4 + * Copyright (C) Huawei Futurewei Technologies. 5 + */ 6 + 7 + #include <linux/crash_core.h> 8 + #include <asm/memory.h> 9 + 10 + void arch_crash_save_vmcoreinfo(void) 11 + { 12 + VMCOREINFO_NUMBER(VA_BITS); 13 + /* Please note VMCOREINFO_NUMBER() uses "%d", not "%x" */ 14 + vmcoreinfo_append_str("NUMBER(kimage_voffset)=0x%llx\n", 15 + kimage_voffset); 16 + vmcoreinfo_append_str("NUMBER(PHYS_OFFSET)=0x%llx\n", 17 + PHYS_OFFSET); 18 + vmcoreinfo_append_str("KERNELOFFSET=%lx\n", kaslr_offset()); 19 + }
-11
arch/arm64/kernel/machine_kexec.c
··· 358 358 } 359 359 } 360 360 #endif /* CONFIG_HIBERNATION */ 361 - 362 - void arch_crash_save_vmcoreinfo(void) 363 - { 364 - VMCOREINFO_NUMBER(VA_BITS); 365 - /* Please note VMCOREINFO_NUMBER() uses "%d", not "%x" */ 366 - vmcoreinfo_append_str("NUMBER(kimage_voffset)=0x%llx\n", 367 - kimage_voffset); 368 - vmcoreinfo_append_str("NUMBER(PHYS_OFFSET)=0x%llx\n", 369 - PHYS_OFFSET); 370 - vmcoreinfo_append_str("KERNELOFFSET=%lx\n", kaslr_offset()); 371 - }
+2 -1
include/asm-generic/io.h
··· 1026 1026 #define ioport_map ioport_map 1027 1027 static inline void __iomem *ioport_map(unsigned long port, unsigned int nr) 1028 1028 { 1029 - return PCI_IOBASE + (port & MMIO_UPPER_LIMIT); 1029 + port &= IO_SPACE_LIMIT; 1030 + return (port > MMIO_UPPER_LIMIT) ? NULL : PCI_IOBASE + port; 1030 1031 } 1031 1032 #endif 1032 1033