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

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

Pull arm64 fixes and clean-up from Catalin Marinas:
- ACPI fix when checking the validity of the GICC MADT subtable
- handle debug exceptions in the el*_inv exception entries
- remove pointless register assignment in two compat syscall wrappers
- unnecessary include path
- defconfig update

* tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
arm64: entry32: remove pointless register assignment
arm64: entry: handle debug exceptions in el*_inv
arm64: Keep the ARM64 Kconfig selects sorted
ACPI / ARM64 : use the new BAD_MADT_GICC_ENTRY macro
ACPI / ARM64: add BAD_MADT_GICC_ENTRY() macro
arm64: defconfig: Add Ceva ahci to the defconfig
arm64: remove another unnecessary libfdt include path

+14 -9
+1 -1
arch/arm64/Kconfig
··· 23 23 select BUILDTIME_EXTABLE_SORT 24 24 select CLONE_BACKWARDS 25 25 select COMMON_CLK 26 - select EDAC_SUPPORT 27 26 select CPU_PM if (SUSPEND || CPU_IDLE) 28 27 select DCACHE_WORD_ACCESS 28 + select EDAC_SUPPORT 29 29 select GENERIC_ALLOCATOR 30 30 select GENERIC_CLOCKEVENTS 31 31 select GENERIC_CLOCKEVENTS_BROADCAST if SMP
+1
arch/arm64/configs/defconfig
··· 83 83 CONFIG_ATA=y 84 84 CONFIG_SATA_AHCI=y 85 85 CONFIG_SATA_AHCI_PLATFORM=y 86 + CONFIG_AHCI_CEVA=y 86 87 CONFIG_AHCI_XGENE=y 87 88 CONFIG_PATA_PLATFORM=y 88 89 CONFIG_PATA_OF_PLATFORM=y
+8
arch/arm64/include/asm/acpi.h
··· 19 19 #include <asm/psci.h> 20 20 #include <asm/smp_plat.h> 21 21 22 + /* Macros for consistency checks of the GICC subtable of MADT */ 23 + #define ACPI_MADT_GICC_LENGTH \ 24 + (acpi_gbl_FADT.header.revision < 6 ? 76 : 80) 25 + 26 + #define BAD_MADT_GICC_ENTRY(entry, end) \ 27 + (!(entry) || (unsigned long)(entry) + sizeof(*(entry)) > (end) || \ 28 + (entry)->header.length != ACPI_MADT_GICC_LENGTH) 29 + 22 30 /* Basic configuration for ACPI */ 23 31 #ifdef CONFIG_ACPI 24 32 /* ACPI table mapping after acpi_gbl_permanent_mmap is set */
+2 -2
arch/arm64/kernel/entry.S
··· 352 352 // TODO: add support for undefined instructions in kernel mode 353 353 enable_dbg 354 354 mov x0, sp 355 + mov x2, x1 355 356 mov x1, #BAD_SYNC 356 - mrs x2, esr_el1 357 357 b bad_mode 358 358 ENDPROC(el1_sync) 359 359 ··· 553 553 ct_user_exit 554 554 mov x0, sp 555 555 mov x1, #BAD_SYNC 556 - mrs x2, esr_el1 556 + mov x2, x25 557 557 bl bad_mode 558 558 b ret_to_user 559 559 ENDPROC(el0_sync)
-2
arch/arm64/kernel/entry32.S
··· 32 32 33 33 ENTRY(compat_sys_sigreturn_wrapper) 34 34 mov x0, sp 35 - mov x27, #0 // prevent syscall restart handling (why) 36 35 b compat_sys_sigreturn 37 36 ENDPROC(compat_sys_sigreturn_wrapper) 38 37 39 38 ENTRY(compat_sys_rt_sigreturn_wrapper) 40 39 mov x0, sp 41 - mov x27, #0 // prevent syscall restart handling (why) 42 40 b compat_sys_rt_sigreturn 43 41 ENDPROC(compat_sys_rt_sigreturn_wrapper) 44 42
+1 -1
arch/arm64/kernel/smp.c
··· 438 438 struct acpi_madt_generic_interrupt *processor; 439 439 440 440 processor = (struct acpi_madt_generic_interrupt *)header; 441 - if (BAD_MADT_ENTRY(processor, end)) 441 + if (BAD_MADT_GICC_ENTRY(processor, end)) 442 442 return -EINVAL; 443 443 444 444 acpi_table_print_madt_entry(header);
-2
arch/arm64/mm/Makefile
··· 4 4 context.o proc.o pageattr.o 5 5 obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o 6 6 obj-$(CONFIG_ARM64_PTDUMP) += dump.o 7 - 8 - CFLAGS_mmu.o := -I$(srctree)/scripts/dtc/libfdt/
+1 -1
drivers/irqchip/irq-gic.c
··· 1055 1055 1056 1056 processor = (struct acpi_madt_generic_interrupt *)header; 1057 1057 1058 - if (BAD_MADT_ENTRY(processor, end)) 1058 + if (BAD_MADT_GICC_ENTRY(processor, end)) 1059 1059 return -EINVAL; 1060 1060 1061 1061 /*