Hi Linus, Here are the main MIPS changes for 4.21, summarized below. Please pull.
Thanks, Paul The following changes since commit 651022382c7f8da46cb4872a545ee1da6d097d2a: Linux 4.20-rc1 (2018-11-04 15:37:52 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux.git tags/mips_4.21 for you to fetch changes up to adcc81f148d733b7e8e641300c5590a2cdc13bf3: MIPS: math-emu: Write-protect delay slot emulation pages (2018-12-20 10:00:01 -0800) ---------------------------------------------------------------- Here's the main MIPS pull for Linux 4.21. Core architecture changes include: - Syscall tables & definitions for unistd.h are now generated by scripts, providing greater consistency with other architectures & making it easier to add new syscalls. - Support for building kernels with no floating point support, upon which any userland attempting to use floating point instructions will receive a SIGILL. Mostly useful to shrink the kernel & as preparation for nanoMIPS support which does not yet include FP. - MIPS SIMD Architecture (MSA) vector register context is now exposed by ptrace via a new NT_MIPS_MSA regset. - ASIDs are now stored as 64b values even for MIPS32 kernels, expanding the ASID version field sufficiently that we don't need to worry about overflow & avoiding rare issues with reused ASIDs that have been observed in the wild. - The branch delay slot "emulation" page is now mapped without write permission for the user, preventing its use as a nice location for attacks to execute malicious code from. - Support for ioremap_prot(), primarily to allow gdb or other ptrace users the ability to view their tracee's memory using the same cache coherency attribute. - Optimizations to more cpu_has_* macros, allowing more to be compile-time constant where possible. - Enable building the whole kernel with UBSAN instrumentation. - Enable building the kernel with link-time dead code & data elimination. Platform specific changes include: - The Boston board gains a workaround for DMA prefetching issues with the EG20T Platform Controller Hub that it uses. - Cleanups to Cavium Octeon code removing about 20k lines of redundant code, mostly unused or duplicate register definitions in headers. - defconfig updates for the DECstation machines, including new defconfigs for r4k & 64b machines. - Further work on Loongson 3 support. - DMA fixes for SiByte machines. ---------------------------------------------------------------- Aaro Koskinen (30): MIPS: OCTEON: cvmx-l2c: make cvmx_l2c_spinlock static MIPS: OCTEON: setup: make internal functions and data static MIPS: OCTEON: setup: include asm/fw/fw.h MIPS: OCTEON: setup: include asm/prom.h MIPS: OCTEON: cvmx-helper: make __cvmx_helper_errata_fix_ipd_ptr_alignment static MIPS: OCTEON: delete unused loopback configuration functions MIPS: OCTEON: octeon-platform: make octeon_ids static MIPS: OCTEON: octeon-platform: fix typing MIPS: OCTEON: octeon-irq: make octeon_irq_ciu3_set_affinity() static MIPS: OCTEON: csrc-octeon: include linux/sched/clock.h MIPS: OCTEON: smp: make internal symbols static MIPS: OCTEON: cvmx-helper-util: delete cvmx_helper_dump_packet MIPS: OCTEON: cvmx-helper-util: make cvmx_helper_setup_red_queue static MIPS: OCTEON: make cvmx_bootmem_alloc_range static MIPS: OCTEON: cvmx-bootmem: delete unused functions MIPS: OCTEON: cvmx-bootmem: move code to avoid forward declarations MIPS: OCTEON: cvmx-bootmem: make more functions static MIPS: OCTEON: delete cvmx override functions MIPS: OCTEON: gmxx-defs.h: delete unused functions and macros MIPS: OCTEON: cvmx-gmxx-defs.h: delete unused unions MIPS: OCTEON: cvmx-gmxx-defs.h: delete unused union fields MIPS: OCTEON: cvmx-gmxx-defs.h: use default register value return when possible MIPS: OCTEON: cvmx-ciu2-defs.h: delete unused macros MIPS: OCTEON: cvmx-ciu2-defs.h: delete unused unions MIPS: OCTEON: enable all OCTEON drivers in defconfig MIPS: OCTEON: octeon-usb: use common gpio_bit definition MIPS: OCTEON: cvmx_pko_mem_debug8: use oldest forward compatible definition MIPS: OCTEON: cvmx_mio_fus_dat3: use oldest forward compatible definition MIPS: OCTEON: cvmx_gmxx_inf_mode: use oldest forward compatible definition MIPS: OCTEON: delete redundant register definitions Firoz Khan (7): mips: add __NR_syscalls along with __NR_Linux_syscalls mips: remove unused macros mips: rename scall64-64.S to scall64-n64.S mips: add +1 to __NR_syscalls in uapi header mips: remove syscall table entries mips: add system call table generation support mips: generate uapi header and system call table files Hassan Naveed (2): MIPS: Enable IOREMAP_PROT config option for MIPS cpus MIPS: Enable Undefined Behavior Sanitizer UBSAN Huacai Chen (4): MIPS: Loongson: Add Loongson-3A R2.1 basic support MIPS: c-r4k: Add r4k_blast_scache_node for Loongson-3 MIPS: Ensure pmd_present() returns false after pmd_mknotpresent() MIPS: Align kernel load address to 64KB Maciej W. Rozycki (6): MIPS: DEC: Update R3k DECstation defconfig for Y2018 MIPS: DEC: Add R4k DECstation defconfig MIPS: DEC: Add 64-bit DECstation defconfig MIPS: SiByte: Set 32-bit bus mask for BCM1250 PCI MIPS: SiByte: Enable ZONE_DMA32 for LittleSur MIPS: SiByte: Enable swiotlb for SWARM, LittleSur and BigSur Maksym Kokhan (2): mips: delete duplicated BUILTIN_DTB and LIBFDT configs mips: sort list of configs for Malta Mathieu Malaterre (1): mips: annotate implicit fall throughs Paul Burton (39): MIPS: Remove GCC_IMM_ASM & GCC_REG_ACCUM macros MIPS: Simplify GCC_OFF_SMALL_ASM definition MIPS: Hardcode cpu_has_mmips=1 for microMIPS kernels MIPS: Hide CONFIG_MIPS_O32_FP64_SUPPORT prompt for >= MIPSr6 MIPS: BCM5xxx: Remove dead init_fpu code MIPS: Simplify FP context initialization MIPS: Ensure emulated FP sets PF_USED_MATH MIPS: Drop forward declarations of sigcontext in asm/fpu.h MIPS: Better abstract R2300 FPU usage in Kconfig MIPS: Introduce CONFIG_MIPS_FP_SUPPORT MIPS: Hardcode cpu_has_fpu=0 when CONFIG_MIPS_FP_SUPPORT=n MIPS: Stub asm/fpu.h functions MIPS: cpu-probe: Avoid probing FPU when CONFIG_MIPS_FP_SUPPORT=n MIPS: traps: Never enable FPU when CONFIG_MIPS_FP_SUPPORT=n MIPS: branch: Remove FP branch handling when CONFIG_MIPS_FP_SUPPORT=n MIPS: unaligned: Remove FP & MSA code when unsupported MIPS: ptrace: Remove FP support when CONFIG_MIPS_FP_SUPPORT=n MIPS: signal: Remove FP context support when CONFIG_MIPS_FP_SUPPORT=n MIPS: Avoid FP ELF checks when CONFIG_MIPS_FP_SUPPORT=n MIPS: Avoid FCSR sanitization when CONFIG_MIPS_FP_SUPPORT=n MIPS: Don't compile math-emu when CONFIG_MIPS_FP_SUPPORT=n MIPS: Remove struct task_struct fpu state when CONFIG_MIPS_FP_SUPPORT=n MIPS: Allow FP support to be disabled MIPS: Avoid using .set mips0 to restore ISA MIPS: Fix do_ade() closing brace indentation MIPS: Don't dump Hi & Lo regs on >= MIPSr6 MIPS: Boston: Disable EG20T prefetch MIPS: Use Kconfig to select CPU_NO_EFFICIENT_FFS lib/gcd: Remove use of CPU_NO_EFFICIENT_FFS macro MIPS: ptrace: introduce NT_MIPS_MSA regset MIPS: malta: Use img-ascii-lcd driver for LCD display MIPS: Regenerate defconfigs MIPS: Enable dead code elimination MIPS: Only include mmzone.h when CONFIG_NEED_MULTIPLE_NODES=y MIPS: MT: Remove norps command line parameter MIPS: Hardcode cpu_has_mips* where target ISA allows MIPS: Expand MIPS32 ASIDs to 64 bits MIPS: Remove struct mm_context_t fp_mode_switching field MIPS: math-emu: Write-protect delay slot emulation pages Rob Herring (1): MIPS: Use device_type helpers to access the node type Sean Young (1): MIPS: Remove superfluous check for __linux__ Yangtao Li (2): MIPS: math-emu: Change to use DEFINE_SHOW_ATTRIBUTE macro MIPS: r2-on-r6-emu: Change to use DEFINE_SHOW_ATTRIBUTE macro .../features/vm/ioremap_prot/arch-support.txt | 2 +- arch/mips/Kconfig | 65 +- arch/mips/Makefile | 5 +- arch/mips/boot/compressed/calc_vmlinuz_load_addr.c | 7 +- arch/mips/boot/dts/img/boston.dts | 6 + arch/mips/boot/dts/mti/malta.dts | 5 + arch/mips/cavium-octeon/csrc-octeon.c | 1 + arch/mips/cavium-octeon/executive/cvmx-bootmem.c | 149 +- arch/mips/cavium-octeon/executive/cvmx-cmd-queue.c | 2 +- .../cavium-octeon/executive/cvmx-helper-rgmii.c | 68 - .../cavium-octeon/executive/cvmx-helper-sgmii.c | 38 - .../cavium-octeon/executive/cvmx-helper-util.c | 90 +- .../cavium-octeon/executive/cvmx-helper-xaui.c | 39 - arch/mips/cavium-octeon/executive/cvmx-helper.c | 91 +- .../cavium-octeon/executive/cvmx-interrupt-rsl.c | 2 +- arch/mips/cavium-octeon/executive/cvmx-l2c.c | 2 +- arch/mips/cavium-octeon/executive/octeon-model.c | 12 +- arch/mips/cavium-octeon/octeon-irq.c | 4 +- arch/mips/cavium-octeon/octeon-platform.c | 4 +- arch/mips/cavium-octeon/octeon-usb.c | 6 +- arch/mips/cavium-octeon/setup.c | 8 +- arch/mips/cavium-octeon/smp.c | 4 +- arch/mips/configs/ar7_defconfig | 44 +- arch/mips/configs/ath25_defconfig | 25 +- arch/mips/configs/ath79_defconfig | 33 +- arch/mips/configs/bcm47xx_defconfig | 11 +- arch/mips/configs/bcm63xx_defconfig | 37 +- arch/mips/configs/bigsur_defconfig | 65 +- arch/mips/configs/bmips_be_defconfig | 22 +- arch/mips/configs/bmips_stb_defconfig | 23 +- arch/mips/configs/capcella_defconfig | 24 +- arch/mips/configs/cavium_octeon_defconfig | 44 +- arch/mips/configs/ci20_defconfig | 27 +- arch/mips/configs/cobalt_defconfig | 8 +- arch/mips/configs/db1xxx_defconfig | 47 +- arch/mips/configs/decstation_64_defconfig | 227 + arch/mips/configs/decstation_defconfig | 163 +- arch/mips/configs/decstation_r4k_defconfig | 224 + arch/mips/configs/e55_defconfig | 8 +- arch/mips/configs/fuloong2e_defconfig | 79 +- arch/mips/configs/gcw0_defconfig | 12 +- arch/mips/configs/generic_defconfig | 26 +- arch/mips/configs/gpr_defconfig | 112 +- arch/mips/configs/ip22_defconfig | 76 +- arch/mips/configs/ip27_defconfig | 149 +- arch/mips/configs/ip28_defconfig | 26 +- arch/mips/configs/ip32_defconfig | 41 +- arch/mips/configs/jazz_defconfig | 62 +- arch/mips/configs/jmr3927_defconfig | 13 +- arch/mips/configs/lasat_defconfig | 24 +- arch/mips/configs/lemote2f_defconfig | 143 +- arch/mips/configs/loongson1b_defconfig | 15 +- arch/mips/configs/loongson1c_defconfig | 17 +- arch/mips/configs/loongson3_defconfig | 70 +- arch/mips/configs/malta_defconfig | 42 +- arch/mips/configs/malta_kvm_defconfig | 59 +- arch/mips/configs/malta_kvm_guest_defconfig | 48 +- arch/mips/configs/malta_qemu_32r6_defconfig | 22 +- arch/mips/configs/maltaaprp_defconfig | 25 +- arch/mips/configs/maltasmvp_defconfig | 30 +- arch/mips/configs/maltasmvp_eva_defconfig | 30 +- arch/mips/configs/maltaup_defconfig | 21 +- arch/mips/configs/maltaup_xpa_defconfig | 44 +- arch/mips/configs/markeins_defconfig | 35 +- arch/mips/configs/mips_paravirt_defconfig | 35 +- arch/mips/configs/mpc30x_defconfig | 7 +- arch/mips/configs/msp71xx_defconfig | 20 +- arch/mips/configs/mtx1_defconfig | 307 +- arch/mips/configs/nlm_xlp_defconfig | 112 +- arch/mips/configs/nlm_xlr_defconfig | 145 +- arch/mips/configs/omega2p_defconfig | 28 +- arch/mips/configs/pic32mzda_defconfig | 12 +- arch/mips/configs/pistachio_defconfig | 78 +- arch/mips/configs/pnx8335_stb225_defconfig | 27 +- arch/mips/configs/qi_lb60_defconfig | 23 +- arch/mips/configs/rb532_defconfig | 49 +- arch/mips/configs/rbtx49xx_defconfig | 24 +- arch/mips/configs/rm200_defconfig | 79 +- arch/mips/configs/rt305x_defconfig | 45 +- arch/mips/configs/sb1250_swarm_defconfig | 36 +- arch/mips/configs/tb0219_defconfig | 32 +- arch/mips/configs/tb0226_defconfig | 17 +- arch/mips/configs/tb0287_defconfig | 29 +- arch/mips/configs/vocore2_defconfig | 28 +- arch/mips/configs/workpad_defconfig | 18 +- arch/mips/configs/xway_defconfig | 32 +- arch/mips/include/asm/Kbuild | 4 + arch/mips/include/asm/atomic.h | 27 +- arch/mips/include/asm/bitops.h | 42 +- arch/mips/include/asm/cmpxchg.h | 6 +- arch/mips/include/asm/compiler.h | 24 +- arch/mips/include/asm/cpu-features.h | 60 +- arch/mips/include/asm/cpu-info.h | 2 +- arch/mips/include/asm/cpu.h | 3 +- arch/mips/include/asm/dsemul.h | 29 +- arch/mips/include/asm/edac.h | 3 +- arch/mips/include/asm/elf.h | 26 +- arch/mips/include/asm/fpu.h | 145 +- arch/mips/include/asm/fpu_emulator.h | 11 - arch/mips/include/asm/futex.h | 14 +- arch/mips/include/asm/hazards.h | 6 +- arch/mips/include/asm/io.h | 22 +- arch/mips/include/asm/kvm_host.h | 9 +- arch/mips/include/asm/local.h | 12 +- .../asm/mach-loongson64/kernel-entry-init.h | 4 +- arch/mips/include/asm/mach-loongson64/mmzone.h | 1 + arch/mips/include/asm/mipsmtregs.h | 7 +- arch/mips/include/asm/mipsregs.h | 30 +- arch/mips/include/asm/mmu.h | 3 +- arch/mips/include/asm/mmu_context.h | 10 +- arch/mips/include/asm/mmzone.h | 13 +- arch/mips/include/asm/octeon/cvmx-agl-defs.h | 699 -- arch/mips/include/asm/octeon/cvmx-asxx-defs.h | 105 - arch/mips/include/asm/octeon/cvmx-bootmem.h | 76 - arch/mips/include/asm/octeon/cvmx-ciu2-defs.h | 7060 -------------------- arch/mips/include/asm/octeon/cvmx-dbg-defs.h | 4 - arch/mips/include/asm/octeon/cvmx-dpi-defs.h | 178 - arch/mips/include/asm/octeon/cvmx-fpa-defs.h | 247 - arch/mips/include/asm/octeon/cvmx-gmxx-defs.h | 5058 +------------- arch/mips/include/asm/octeon/cvmx-gpio-defs.h | 116 - arch/mips/include/asm/octeon/cvmx-helper-rgmii.h | 17 - arch/mips/include/asm/octeon/cvmx-helper-sgmii.h | 17 - arch/mips/include/asm/octeon/cvmx-helper-util.h | 23 - arch/mips/include/asm/octeon/cvmx-helper-xaui.h | 16 - arch/mips/include/asm/octeon/cvmx-helper.h | 36 - arch/mips/include/asm/octeon/cvmx-iob-defs.h | 375 -- arch/mips/include/asm/octeon/cvmx-ipd-defs.h | 538 -- arch/mips/include/asm/octeon/cvmx-l2t-defs.h | 6 - arch/mips/include/asm/octeon/cvmx-led-defs.h | 78 - arch/mips/include/asm/octeon/cvmx-lmcx-defs.h | 514 -- arch/mips/include/asm/octeon/cvmx-mio-defs.h | 1197 ---- arch/mips/include/asm/octeon/cvmx-mixx-defs.h | 136 - arch/mips/include/asm/octeon/cvmx-npei-defs.h | 295 - arch/mips/include/asm/octeon/cvmx-npi-defs.h | 235 - arch/mips/include/asm/octeon/cvmx-pci-defs.h | 392 -- arch/mips/include/asm/octeon/cvmx-pcsx-defs.h | 185 - arch/mips/include/asm/octeon/cvmx-pcsxx-defs.h | 146 - arch/mips/include/asm/octeon/cvmx-pemx-defs.h | 144 - arch/mips/include/asm/octeon/cvmx-pescx-defs.h | 59 - arch/mips/include/asm/octeon/cvmx-pip-defs.h | 688 -- arch/mips/include/asm/octeon/cvmx-pko-defs.h | 619 -- arch/mips/include/asm/octeon/cvmx-pko.h | 2 +- arch/mips/include/asm/octeon/cvmx-pow-defs.h | 317 - arch/mips/include/asm/octeon/cvmx-rnm-defs.h | 53 - arch/mips/include/asm/octeon/cvmx-rst-defs.h | 28 - arch/mips/include/asm/octeon/cvmx-smix-defs.h | 88 - arch/mips/include/asm/octeon/cvmx-spxx-defs.h | 62 - arch/mips/include/asm/octeon/cvmx-sriox-defs.h | 123 - arch/mips/include/asm/octeon/cvmx-srxx-defs.h | 22 - arch/mips/include/asm/octeon/cvmx-stxx-defs.h | 64 - arch/mips/include/asm/octeon/cvmx-uctlx-defs.h | 89 - arch/mips/include/asm/page.h | 1 + arch/mips/include/asm/pgtable-64.h | 5 + arch/mips/include/asm/pgtable.h | 6 +- arch/mips/include/asm/processor.h | 19 +- arch/mips/include/asm/r4kcache.h | 22 + arch/mips/include/asm/stackframe.h | 3 +- arch/mips/include/asm/switch_to.h | 6 +- arch/mips/include/asm/unistd.h | 3 + arch/mips/include/uapi/asm/Kbuild | 6 + arch/mips/include/uapi/asm/sgidefs.h | 8 - arch/mips/include/uapi/asm/unistd.h | 1074 +-- arch/mips/kernel/Makefile | 5 +- arch/mips/kernel/asm-offsets.c | 7 +- arch/mips/kernel/bmips_5xxx_init.S | 6 - arch/mips/kernel/branch.c | 41 +- arch/mips/kernel/cpu-bugs64.c | 4 +- arch/mips/kernel/cpu-probe.c | 64 +- arch/mips/kernel/elf.c | 4 + arch/mips/kernel/ftrace.c | 6 +- arch/mips/kernel/genex.S | 5 +- arch/mips/kernel/idle.c | 7 +- arch/mips/kernel/mips-mt.c | 11 - arch/mips/kernel/mips-r2-to-r6-emul.c | 39 +- arch/mips/kernel/process.c | 9 +- arch/mips/kernel/ptrace.c | 466 +- arch/mips/kernel/ptrace32.c | 33 +- arch/mips/kernel/r2300_fpu.S | 58 - arch/mips/kernel/r4k_fpu.S | 144 - arch/mips/kernel/scall32-o32.S | 391 +- arch/mips/kernel/scall64-64.S | 444 -- arch/mips/kernel/scall64-n32.S | 341 +- arch/mips/kernel/scall64-n64.S | 117 + arch/mips/kernel/scall64-o32.S | 379 +- arch/mips/kernel/signal.c | 39 +- arch/mips/kernel/syscall.c | 6 +- arch/mips/kernel/syscalls/Makefile | 96 + arch/mips/kernel/syscalls/syscall_n32.tbl | 343 + arch/mips/kernel/syscalls/syscall_n64.tbl | 339 + arch/mips/kernel/syscalls/syscall_o32.tbl | 382 ++ arch/mips/kernel/syscalls/syscallhdr.sh | 37 + arch/mips/kernel/syscalls/syscallnr.sh | 28 + arch/mips/kernel/syscalls/syscalltbl.sh | 36 + arch/mips/kernel/traps.c | 124 +- arch/mips/kernel/unaligned.c | 40 +- arch/mips/kernel/vdso.c | 4 +- arch/mips/kernel/vmlinux.lds.S | 4 +- arch/mips/kernel/watch.c | 13 + arch/mips/kvm/Kconfig | 1 + arch/mips/loongson64/common/env.c | 3 +- arch/mips/loongson64/loongson-3/cop2-ex.c | 7 +- arch/mips/loongson64/loongson-3/smp.c | 3 +- arch/mips/math-emu/cp1emu.c | 7 + arch/mips/math-emu/dsemul.c | 38 +- arch/mips/math-emu/me-debugfs.c | 12 +- arch/mips/mm/c-r3k.c | 2 +- arch/mips/mm/c-r4k.c | 48 +- arch/mips/mm/tlbex.c | 1 + arch/mips/mti-malta/Makefile | 1 - arch/mips/mti-malta/malta-display.c | 56 - arch/mips/mti-malta/malta-init.c | 3 - arch/mips/mti-malta/malta-setup.c | 2 - arch/mips/mti-malta/malta-time.c | 2 - arch/mips/pci/fixup-sb1250.c | 53 + arch/mips/pci/pci-rt3883.c | 6 +- arch/mips/sibyte/common/Makefile | 1 + arch/mips/sibyte/common/dma.c | 14 + arch/mips/vdso/Makefile | 1 + drivers/platform/mips/cpu_hwmon.c | 3 +- include/uapi/linux/elf.h | 1 + lib/gcd.c | 2 +- 221 files changed, 4492 insertions(+), 25666 deletions(-) create mode 100644 arch/mips/configs/decstation_64_defconfig create mode 100644 arch/mips/configs/decstation_r4k_defconfig delete mode 100644 arch/mips/kernel/scall64-64.S create mode 100644 arch/mips/kernel/scall64-n64.S create mode 100644 arch/mips/kernel/syscalls/Makefile create mode 100644 arch/mips/kernel/syscalls/syscall_n32.tbl create mode 100644 arch/mips/kernel/syscalls/syscall_n64.tbl create mode 100644 arch/mips/kernel/syscalls/syscall_o32.tbl create mode 100644 arch/mips/kernel/syscalls/syscallhdr.sh create mode 100644 arch/mips/kernel/syscalls/syscallnr.sh create mode 100644 arch/mips/kernel/syscalls/syscalltbl.sh delete mode 100644 arch/mips/mti-malta/malta-display.c create mode 100644 arch/mips/sibyte/common/dma.c
signature.asc
Description: PGP signature