Merge ~danielj-mellanox/ubuntu/+source/linux-bluefield/+git/focal:tls_bond into ~canonical-kernel/ubuntu/+source/linux-bluefield/+git/focal:master-next

Proposed by Dan Jurgens
Status: Merged
Merge reported by: Stefan Bader
Merged at revision: e488b457b58f9acf030de3ba1d92906add07390b
Proposed branch: ~danielj-mellanox/ubuntu/+source/linux-bluefield/+git/focal:tls_bond
Merge into: ~canonical-kernel/ubuntu/+source/linux-bluefield/+git/focal:master-next
Diff against target: 438422 lines (+210340/-13185) (has conflicts)
2479 files modified
Documentation/admin-guide/device-mapper/dm-integrity.rst (+6/-0)
Documentation/admin-guide/kernel-parameters.txt (+20/-0)
Documentation/asm-annotations.rst (+216/-0)
Documentation/devicetree/bindings/i2c/mellanox,i2c-mlxbf.yaml (+78/-0)
Documentation/devicetree/bindings/mfd/ahc1ec0.yaml (+69/-0)
Documentation/devicetree/bindings/net/btusb.txt (+1/-1)
Documentation/devicetree/bindings/net/can/tcan4x5x.txt (+1/-1)
Documentation/devicetree/bindings/net/ethernet-controller.yaml (+5/-0)
Documentation/devicetree/bindings/net/nfc/nxp-nci.txt (+1/-1)
Documentation/devicetree/bindings/net/nfc/pn544.txt (+1/-1)
Documentation/filesystems/seq_file.txt (+6/-0)
Documentation/filesystems/sysfs.txt (+3/-5)
Documentation/index.rst (+8/-0)
Documentation/media/uapi/v4l/colorspaces-defs.rst (+4/-5)
Documentation/media/uapi/v4l/colorspaces-details.rst (+2/-3)
Documentation/networking/device_drivers/amazon/ena.txt (+1/-1)
Documentation/networking/j1939.rst (+2/-2)
Documentation/virt/kvm/api.txt (+6/-0)
Documentation/virt/kvm/mmu.txt (+1/-1)
Documentation/x86/topology.rst (+9/-0)
Documentation/xtensa/mmu.rst (+6/-3)
MAINTAINERS (+11/-0)
Makefile (+15/-12)
arch/Kconfig (+23/-0)
arch/arc/Makefile (+13/-7)
arch/arc/boot/Makefile (+1/-10)
arch/arc/boot/dts/axc001.dtsi (+1/-1)
arch/arc/boot/dts/axc003.dtsi (+1/-1)
arch/arc/boot/dts/axc003_idu.dtsi (+1/-1)
arch/arc/boot/dts/vdk_axc003.dtsi (+1/-1)
arch/arc/boot/dts/vdk_axc003_idu.dtsi (+1/-1)
arch/arc/include/asm/page.h (+1/-0)
arch/arc/include/asm/pgtable.h (+2/-0)
arch/arc/kernel/perf_event.c (+18/-9)
arch/arc/kernel/stacktrace.c (+21/-9)
arch/arm/Kconfig (+2/-0)
arch/arm/boot/compressed/head.S (+2/-2)
arch/arm/boot/dts/armada-388-helios4.dts (+22/-6)
arch/arm/boot/dts/armada-xp-98dx3236.dtsi (+0/-5)
arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts (+0/-5)
arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts (+2/-2)
arch/arm/boot/dts/aspeed-g4.dtsi (+1/-0)
arch/arm/boot/dts/aspeed-g5.dtsi (+1/-0)
arch/arm/boot/dts/at91-sama5d3_xplained.dts (+7/-0)
arch/arm/boot/dts/at91-sama5d4_xplained.dts (+7/-0)
arch/arm/boot/dts/at91sam9rl.dtsi (+11/-8)
arch/arm/boot/dts/dra76x.dtsi (+2/-2)
arch/arm/boot/dts/exynos3250-artik5.dtsi (+1/-1)
arch/arm/boot/dts/exynos3250-monk.dts (+1/-1)
arch/arm/boot/dts/exynos3250-rinato.dts (+1/-1)
arch/arm/boot/dts/exynos5250-spring.dts (+1/-1)
arch/arm/boot/dts/exynos5410-odroidxu.dts (+4/-2)
arch/arm/boot/dts/exynos5410-pinctrl.dtsi (+28/-0)
arch/arm/boot/dts/exynos5410.dtsi (+4/-0)
arch/arm/boot/dts/exynos5420-arndale-octa.dts (+1/-1)
arch/arm/boot/dts/exynos5422-odroid-core.dtsi (+1/-1)
arch/arm/boot/dts/imx50-evk.dts (+1/-1)
arch/arm/boot/dts/imx6qdl-gw52xx.dtsi (+1/-1)
arch/arm/boot/dts/imx6qdl-kontron-samx6i.dtsi (+3/-3)
arch/arm/boot/dts/imx6qdl-udoo.dtsi (+1/-1)
arch/arm/boot/dts/imx6qdl-wandboard-revd1.dtsi (+0/-1)
arch/arm/boot/dts/lpc32xx.dtsi (+0/-3)
arch/arm/boot/dts/meson8b-odroidc1.dts (+1/-1)
arch/arm/boot/dts/meson8m2-mxiii-plus.dts (+1/-1)
arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts (+1/-0)
arch/arm/boot/dts/omap4-panda-es.dts (+1/-1)
arch/arm/boot/dts/omap4.dtsi (+1/-1)
arch/arm/boot/dts/omap443x.dtsi (+12/-0)
arch/arm/boot/dts/picoxcell-pc3x2.dtsi (+4/-0)
arch/arm/boot/dts/s5pv210.dtsi (+69/-94)
arch/arm/boot/dts/sama5d2.dtsi (+4/-3)
arch/arm/boot/dts/sun4i-a10.dtsi (+1/-1)
arch/arm/boot/dts/sun6i-a31-hummingbird.dts (+1/-1)
arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts (+1/-1)
arch/arm/boot/dts/sun7i-a20-bananapi.dts (+1/-1)
arch/arm/boot/dts/sun7i-a20-bananapro.dts (+1/-1)
arch/arm/boot/dts/sun7i-a20-cubietruck.dts (+1/-1)
arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts (+2/-2)
arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts (+1/-1)
arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts (+1/-1)
arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts (+0/-5)
arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts (+1/-1)
arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts (+1/-1)
arch/arm/boot/dts/sun8i-v3s.dtsi (+1/-1)
arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts (+6/-6)
arch/arm/boot/dts/sun9i-a80-cubieboard4.dts (+1/-1)
arch/arm/boot/dts/sun9i-a80-optimus.dts (+1/-1)
arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi (+1/-1)
arch/arm/crypto/aes-ce-core.S (+22/-10)
arch/arm/include/asm/kexec-internal.h (+12/-0)
arch/arm/include/asm/kprobes.h (+11/-11)
arch/arm/include/asm/kvm_asm.h (+1/-1)
arch/arm/include/asm/pgtable-2level.h (+2/-0)
arch/arm/include/asm/pgtable-3level.h (+2/-0)
arch/arm/kernel/asm-offsets.c (+5/-0)
arch/arm/kernel/head.S (+1/-5)
arch/arm/kernel/hw_breakpoint.c (+72/-28)
arch/arm/kernel/machine_kexec.c (+8/-12)
arch/arm/kernel/relocate_kernel.S (+11/-27)
arch/arm/kernel/signal.c (+8/-6)
arch/arm/kvm/hyp/tlb.c (+2/-1)
arch/arm/mach-footbridge/dc21285.c (+6/-6)
arch/arm/mach-imx/suspend-imx6.S (+1/-0)
arch/arm/mach-ixp4xx/Kconfig (+0/-1)
arch/arm/mach-omap2/cpuidle44xx.c (+12/-10)
arch/arm/mach-omap2/omap_device.c (+5/-3)
arch/arm/mach-sunxi/sunxi.c (+1/-0)
arch/arm/plat-samsung/Kconfig (+1/-0)
arch/arm/probes/kprobes/opt-arm.c (+9/-9)
arch/arm/xen/enlighten.c (+0/-2)
arch/arm/xen/p2m.c (+31/-2)
arch/arm64/Kconfig (+1/-1)
arch/arm64/Kconfig.platforms (+1/-0)
arch/arm64/Makefile (+2/-2)
arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts (+1/-1)
arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts (+1/-1)
arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts (+1/-1)
arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts (+1/-4)
arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi (+0/-1)
arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi (+5/-1)
arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts (+1/-1)
arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts (+1/-1)
arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts (+1/-1)
arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts (+1/-1)
arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi (+7/-0)
arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi (+3/-1)
arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts (+1/-1)
arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts (+1/-1)
arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts (+1/-1)
arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi (+1/-1)
arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi (+1/-1)
arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts (+1/-1)
arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts (+2/-2)
arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts (+1/-1)
arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts (+1/-1)
arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts (+1/-1)
arch/arm64/boot/dts/amlogic/meson-sm1.dtsi (+1/-1)
arch/arm64/boot/dts/broadcom/stingray/stingray-usb.dtsi (+16/-11)
arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi (+1/-1)
arch/arm64/boot/dts/exynos/exynos7-espresso.dts (+1/-1)
arch/arm64/boot/dts/exynos/exynos7.dtsi (+4/-8)
arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi (+2/-2)
arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi (+1/-1)
arch/arm64/boot/dts/freescale/imx8mm.dtsi (+1/-1)
arch/arm64/boot/dts/freescale/imx8mn.dtsi (+0/-30)
arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts (+8/-4)
arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts (+2/-2)
arch/arm64/boot/dts/mediatek/mt7622.dtsi (+2/-0)
arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts (+0/-12)
arch/arm64/boot/dts/nvidia/tegra194.dtsi (+3/-3)
arch/arm64/boot/dts/nvidia/tegra210.dtsi (+1/-0)
arch/arm64/boot/dts/qcom/msm8916.dtsi (+2/-2)
arch/arm64/boot/dts/qcom/sdm845-db845c.dts (+3/-1)
arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts (+17/-16)
arch/arm64/boot/dts/renesas/cat875.dtsi (+0/-1)
arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi (+0/-1)
arch/arm64/boot/dts/renesas/ulcb.dtsi (+1/-0)
arch/arm64/boot/dts/rockchip/px30.dtsi (+1/-1)
arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts (+1/-0)
arch/arm64/boot/dts/rockchip/rk3328.dtsi (+8/-8)
arch/arm64/boot/dts/rockchip/rk3399.dtsi (+4/-1)
arch/arm64/crypto/aes-glue.c (+2/-2)
arch/arm64/crypto/sha1-ce-glue.c (+1/-0)
arch/arm64/crypto/sha2-ce-glue.c (+2/-0)
arch/arm64/crypto/sha3-ce-glue.c (+4/-0)
arch/arm64/crypto/sha512-ce-glue.c (+2/-0)
arch/arm64/include/asm/assembler.h (+1/-0)
arch/arm64/include/asm/atomic.h (+5/-5)
arch/arm64/include/asm/cpufeature.h (+2/-0)
arch/arm64/include/asm/kvm_asm.h (+1/-1)
arch/arm64/include/asm/kvm_host.h (+2/-0)
arch/arm64/include/asm/linkage.h (+16/-0)
arch/arm64/include/asm/memory.h (+12/-8)
arch/arm64/include/asm/mmu_context.h (+1/-4)
arch/arm64/include/asm/numa.h (+3/-0)
arch/arm64/include/asm/pgtable.h (+20/-18)
arch/arm64/kernel/cpu_errata.c (+15/-0)
arch/arm64/kernel/cpufeature.c (+1/-1)
arch/arm64/kernel/head.S (+2/-1)
arch/arm64/kernel/machine_kexec_file.c (+3/-1)
arch/arm64/kernel/module.lds (+3/-3)
arch/arm64/kernel/probes/uprobes.c (+1/-1)
arch/arm64/kernel/process.c (+2/-3)
arch/arm64/kernel/psci.c (+1/-4)
arch/arm64/kernel/ptrace.c (+1/-1)
arch/arm64/kernel/smp.c (+2/-0)
arch/arm64/kernel/syscall.c (+1/-1)
arch/arm64/kernel/topology.c (+17/-15)
arch/arm64/kvm/hyp/tlb.c (+2/-1)
arch/arm64/kvm/reset.c (+8/-3)
arch/arm64/kvm/sys_regs.c (+9/-20)
arch/arm64/lib/clear_page.S (+2/-2)
arch/arm64/lib/clear_user.S (+2/-2)
arch/arm64/lib/copy_from_user.S (+2/-2)
arch/arm64/lib/copy_in_user.S (+2/-2)
arch/arm64/lib/copy_page.S (+2/-2)
arch/arm64/lib/copy_to_user.S (+2/-2)
arch/arm64/lib/crc32.S (+4/-4)
arch/arm64/lib/memchr.S (+2/-2)
arch/arm64/lib/memcmp.S (+2/-2)
arch/arm64/lib/memcpy.S (+4/-5)
arch/arm64/lib/memmove.S (+4/-5)
arch/arm64/lib/memset.S (+4/-5)
arch/arm64/lib/strchr.S (+2/-2)
arch/arm64/lib/strcmp.S (+2/-2)
arch/arm64/lib/strlen.S (+2/-2)
arch/arm64/lib/strncmp.S (+2/-2)
arch/arm64/lib/strnlen.S (+2/-2)
arch/arm64/lib/strrchr.S (+2/-2)
arch/arm64/lib/tishift.S (+6/-6)
arch/arm64/mm/init.c (+22/-20)
arch/arm64/mm/mmu.c (+1/-1)
arch/arm64/mm/numa.c (+5/-1)
arch/arm64/mm/physaddr.c (+1/-1)
arch/h8300/kernel/asm-offsets.c (+3/-0)
arch/ia64/kernel/Makefile (+1/-1)
arch/ia64/kernel/kprobes.c (+2/-75)
arch/mips/alchemy/common/clock.c (+8/-1)
arch/mips/bcm47xx/Kconfig (+1/-0)
arch/mips/boot/compressed/decompress.c (+2/-1)
arch/mips/dec/setup.c (+8/-1)
arch/mips/include/asm/asm.h (+18/-0)
arch/mips/include/asm/pgtable-32.h (+3/-0)
arch/mips/include/asm/string.h (+0/-121)
arch/mips/kernel/relocate.c (+8/-2)
arch/mips/kernel/setup.c (+2/-2)
arch/mips/kernel/vmlinux.lds.S (+1/-1)
arch/mips/lantiq/irq.c (+1/-1)
arch/mips/lib/uncached.c (+3/-1)
arch/mips/mm/c-r4k.c (+2/-2)
arch/mips/mm/sc-mips.c (+2/-2)
arch/mips/mm/tlb-r4k.c (+1/-0)
arch/mips/pci/pci-xtalk-bridge.c (+1/-1)
arch/mips/vdso/Makefile (+1/-4)
arch/openrisc/include/asm/uaccess.h (+22/-13)
arch/parisc/kernel/irq.c (+4/-0)
arch/powerpc/Kconfig (+15/-1)
arch/powerpc/Makefile (+0/-1)
arch/powerpc/include/asm/bitops.h (+21/-2)
arch/powerpc/include/asm/book3s/32/pgtable.h (+4/-2)
arch/powerpc/include/asm/book3s/64/kup-radix.h (+20/-11)
arch/powerpc/include/asm/code-patching.h (+1/-1)
arch/powerpc/include/asm/cpm1.h (+1/-0)
arch/powerpc/include/asm/cputable.h (+1/-6)
arch/powerpc/include/asm/drmem.h (+2/-2)
arch/powerpc/include/asm/exception-64s.h (+11/-1)
arch/powerpc/include/asm/feature-fixups.h (+19/-0)
arch/powerpc/include/asm/kup.h (+22/-5)
arch/powerpc/include/asm/machdep.h (+3/-0)
arch/powerpc/include/asm/mmu_context.h (+1/-1)
arch/powerpc/include/asm/nohash/32/pgtable.h (+2/-0)
arch/powerpc/include/asm/nohash/pgtable.h (+2/-2)
arch/powerpc/include/asm/ptrace.h (+3/-0)
arch/powerpc/include/asm/security_features.h (+7/-0)
arch/powerpc/include/asm/setup.h (+4/-0)
arch/powerpc/kernel/Makefile (+3/-0)
arch/powerpc/kernel/asm-offsets.c (+1/-1)
arch/powerpc/kernel/eeh_cache.c (+3/-2)
arch/powerpc/kernel/entry_32.S (+3/-0)
arch/powerpc/kernel/exceptions-64s.S (+46/-42)
arch/powerpc/kernel/head_32.S (+7/-16)
arch/powerpc/kernel/head_64.S (+5/-5)
arch/powerpc/kernel/head_8xx.S (+3/-13)
arch/powerpc/kernel/paca.c (+2/-2)
arch/powerpc/kernel/pci-common.c (+10/-0)
arch/powerpc/kernel/process.c (+1/-1)
arch/powerpc/kernel/prom_init.c (+4/-8)
arch/powerpc/kernel/rtas.c (+153/-0)
arch/powerpc/kernel/setup-common.c (+2/-2)
arch/powerpc/kernel/setup.h (+0/-6)
arch/powerpc/kernel/setup_64.c (+122/-2)
arch/powerpc/kernel/sysfs.c (+17/-25)
arch/powerpc/kernel/traps.c (+4/-1)
arch/powerpc/kernel/vmlinux.lds.S (+24/-18)
arch/powerpc/kvm/book3s_hv.c (+6/-0)
arch/powerpc/kvm/book3s_xive_native.c (+7/-0)
arch/powerpc/kvm/powerpc.c (+4/-4)
arch/powerpc/lib/feature-fixups.c (+104/-0)
arch/powerpc/mm/fault.c (+3/-5)
arch/powerpc/mm/mem.c (+1/-1)
arch/powerpc/perf/core-book3s.c (+25/-1)
arch/powerpc/platforms/8xx/micropatch.c (+11/-0)
arch/powerpc/platforms/powermac/sleep.S (+1/-8)
arch/powerpc/platforms/powernv/memtrace.c (+37/-7)
arch/powerpc/platforms/powernv/npu-dma.c (+14/-2)
arch/powerpc/platforms/powernv/opal-elog.c (+26/-7)
arch/powerpc/platforms/powernv/setup.c (+24/-2)
arch/powerpc/platforms/powernv/smp.c (+1/-1)
arch/powerpc/platforms/pseries/dlpar.c (+3/-4)
arch/powerpc/platforms/pseries/hotplug-memory.c (+29/-14)
arch/powerpc/platforms/pseries/msi.c (+23/-1)
arch/powerpc/platforms/pseries/setup.c (+8/-0)
arch/powerpc/platforms/pseries/suspend.c (+0/-4)
arch/powerpc/sysdev/mpic_msgr.c (+1/-1)
arch/powerpc/xmon/nonstdio.c (+1/-1)
arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts (+1/-0)
arch/riscv/configs/defconfig (+2/-0)
arch/riscv/include/asm/page.h (+4/-1)
arch/riscv/include/asm/pgtable-32.h (+2/-0)
arch/riscv/include/uapi/asm/auxvec.h (+3/-0)
arch/riscv/kernel/head.S (+5/-0)
arch/riscv/kernel/time.c (+3/-0)
arch/s390/boot/head.S (+11/-10)
arch/s390/kernel/perf_cpum_sf.c (+1/-1)
arch/s390/kernel/ptrace.c (+12/-5)
arch/s390/kernel/smp.c (+6/-17)
arch/s390/kernel/time.c (+85/-33)
arch/s390/kernel/vtime.c (+3/-2)
arch/s390/pci/pci_bus.c (+3/-2)
arch/s390/pci/pci_event.c (+4/-0)
arch/s390/purgatory/head.S (+5/-4)
arch/sh/drivers/dma/Kconfig (+1/-2)
arch/sparc/Kconfig (+1/-1)
arch/sparc/include/asm/mman.h (+29/-25)
arch/sparc/kernel/smp_64.c (+14/-51)
arch/sparc/lib/memset.S (+1/-0)
arch/sparc/mm/init_32.c (+3/-0)
arch/sparc/mm/init_64.c (+1/-1)
arch/um/drivers/chan_user.c (+2/-2)
arch/um/drivers/ubd_kern.c (+115/-76)
arch/um/drivers/virtio_uml.c (+2/-1)
arch/um/drivers/xterm.c (+5/-0)
arch/um/kernel/sigio.c (+3/-3)
arch/um/kernel/tlb.c (+11/-1)
arch/um/os-Linux/irq.c (+1/-1)
arch/um/os-Linux/umid.c (+5/-12)
arch/x86/Makefile (+3/-0)
arch/x86/crypto/aesni-intel_glue.c (+16/-12)
arch/x86/crypto/crc32c-pcl-intel-asm_64.S (+1/-1)
arch/x86/entry/entry_32.S (+2/-1)
arch/x86/events/amd/ibs.c (+38/-15)
arch/x86/events/intel/core.c (+7/-3)
arch/x86/events/intel/cstate.c (+3/-3)
arch/x86/events/intel/ds.c (+1/-1)
arch/x86/events/intel/uncore.c (+2/-2)
arch/x86/events/intel/uncore.h (+6/-6)
arch/x86/events/rapl.c (+1/-13)
arch/x86/hyperv/mmu.c (+9/-3)
arch/x86/include/asm/apic.h (+1/-10)
arch/x86/include/asm/barrier.h (+18/-0)
arch/x86/include/asm/cacheinfo.h (+2/-2)
arch/x86/include/asm/fpu/api.h (+13/-2)
arch/x86/include/asm/insn.h (+15/-0)
arch/x86/include/asm/kvm_host.h (+1/-0)
arch/x86/include/asm/linkage.h (+7/-3)
arch/x86/include/asm/msr-index.h (+1/-0)
arch/x86/include/asm/msr.h (+2/-2)
arch/x86/include/asm/pgtable_types.h (+1/-0)
arch/x86/include/asm/sync_core.h (+5/-4)
arch/x86/include/asm/topology.h (+2/-2)
arch/x86/include/asm/virtext.h (+12/-5)
arch/x86/kernel/acpi/wakeup_32.S (+4/-3)
arch/x86/kernel/apic/apic.c (+12/-6)
arch/x86/kernel/apic/vector.c (+14/-10)
arch/x86/kernel/apic/x2apic_cluster.c (+4/-2)
arch/x86/kernel/apic/x2apic_phys.c (+15/-3)
arch/x86/kernel/cpu/amd.c (+7/-8)
arch/x86/kernel/cpu/bugs.c (+35/-21)
arch/x86/kernel/cpu/cacheinfo.c (+3/-3)
arch/x86/kernel/cpu/hygon.c (+5/-6)
arch/x86/kernel/cpu/mce/core.c (+4/-2)
arch/x86/kernel/cpu/microcode/intel.c (+10/-53)
arch/x86/kernel/cpu/mtrr/generic.c (+3/-3)
arch/x86/kernel/cpu/resctrl/internal.h (+0/-2)
arch/x86/kernel/cpu/resctrl/monitor.c (+2/-5)
arch/x86/kernel/cpu/resctrl/rdtgroup.c (+73/-101)
arch/x86/kernel/cpu/topology.c (+1/-1)
arch/x86/kernel/fpu/core.c (+5/-4)
arch/x86/kernel/ftrace_32.S (+2/-1)
arch/x86/kernel/head_32.S (+2/-1)
arch/x86/kernel/kexec-bzimage64.c (+1/-2)
arch/x86/kernel/kprobes/core.c (+5/-0)
arch/x86/kernel/module.c (+1/-0)
arch/x86/kernel/reboot.c (+19/-19)
arch/x86/kernel/tboot.c (+0/-3)
arch/x86/kernel/unwind_orc.c (+7/-14)
arch/x86/kernel/uprobes.c (+6/-4)
arch/x86/kvm/cpuid.h (+14/-0)
arch/x86/kvm/emulate.c (+9/-1)
arch/x86/kvm/irq.c (+34/-51)
arch/x86/kvm/lapic.c (+1/-1)
arch/x86/kvm/mmu.c (+20/-9)
arch/x86/kvm/mmu.h (+1/-1)
arch/x86/kvm/svm.c (+21/-18)
arch/x86/kvm/vmx/nested.c (+8/-5)
arch/x86/kvm/vmx/pmu_intel.c (+5/-1)
arch/x86/kvm/vmx/vmx.c (+6/-7)
arch/x86/kvm/x86.c (+47/-8)
arch/x86/kvm/x86.h (+1/-0)
arch/x86/lib/insn-eval.c (+3/-2)
arch/x86/lib/memcpy_64.S (+1/-3)
arch/x86/lib/memmove_64.S (+1/-3)
arch/x86/lib/memset_64.S (+1/-3)
arch/x86/lib/mmx_32.c (+15/-5)
arch/x86/mm/ident_map.c (+10/-2)
arch/x86/mm/mem_encrypt.c (+1/-0)
arch/x86/mm/mem_encrypt_identity.c (+2/-2)
arch/x86/mm/pat.c (+2/-1)
arch/x86/mm/pgtable.c (+2/-0)
arch/x86/mm/tlb.c (+8/-2)
arch/x86/net/bpf_jit_comp.c (+10/-1)
arch/x86/net/bpf_jit_comp32.c (+10/-1)
arch/x86/pci/intel_mid_pci.c (+1/-0)
arch/x86/platform/efi/efi_64.c (+13/-11)
arch/x86/power/hibernate_asm_32.S (+4/-2)
arch/x86/realmode/rm/trampoline_32.S (+4/-2)
arch/x86/tools/relocs.c (+8/-4)
arch/x86/xen/enlighten_hvm.c (+10/-1)
arch/x86/xen/enlighten_pv.c (+9/-0)
arch/x86/xen/p2m.c (+48/-11)
arch/x86/xen/spinlock.c (+11/-1)
arch/x86/xen/xen-asm_32.S (+4/-3)
arch/xtensa/include/asm/pgtable.h (+1/-1)
arch/xtensa/include/asm/uaccess.h (+1/-1)
arch/xtensa/mm/cache.c (+14/-0)
block/bfq-iosched.c (+1/-0)
block/blk-cgroup.c (+26/-7)
block/blk-core.c (+7/-4)
block/blk-mq.c (+24/-13)
block/blk-pm.c (+9/-6)
block/blk-settings.c (+12/-0)
block/blk-zoned.c (+13/-27)
block/bsg.c (+3/-1)
block/genhd.c (+6/-3)
certs/blacklist.c (+1/-1)
crypto/af_alg.c (+7/-3)
crypto/asymmetric_keys/asym_tpm.c (+1/-1)
crypto/ecdh.c (+7/-5)
crypto/ecdh_helper.c (+3/-0)
crypto/tcrypt.c (+10/-10)
debian.bluefield/abi/5.4.0-1010.13/abiname (+1/-0)
debian.bluefield/abi/5.4.0-1010.13/arm64/bluefield (+13256/-0)
debian.bluefield/abi/5.4.0-1010.13/arm64/bluefield.modules (+700/-0)
debian.bluefield/abi/5.4.0-1010.13/fwinfo (+1/-0)
debian.bluefield/changelog (+3280/-0)
debian.bluefield/config/annotations (+60/-0)
debian.bluefield/config/config.common.ubuntu (+27/-0)
debian.bluefield/control.stub.in (+4/-0)
debian.bluefield/d-i/kernel-versions (+4/-0)
debian.bluefield/reconstruct (+16/-0)
debian.bluefield/rules.d/arm64.mk (+4/-0)
debian.bluefield/tracking-bug (+4/-0)
debian.master/abi/5.4.0-72.80/abiname (+1/-0)
debian.master/abi/5.4.0-72.80/amd64/generic (+23823/-0)
debian.master/abi/5.4.0-72.80/amd64/generic.modules (+3/-2)
debian.master/abi/5.4.0-72.80/amd64/lowlatency (+23834/-0)
debian.master/abi/5.4.0-72.80/amd64/lowlatency.modules (+3/-2)
debian.master/abi/5.4.0-72.80/arm64/generic (+23549/-0)
debian.master/abi/5.4.0-72.80/arm64/generic.modules (+0/-2)
debian.master/abi/5.4.0-72.80/armhf/generic (+23056/-0)
debian.master/abi/5.4.0-72.80/armhf/generic-lpae (+22999/-0)
debian.master/abi/5.4.0-72.80/armhf/generic-lpae.modules (+0/-4)
debian.master/abi/5.4.0-72.80/armhf/generic.modules (+0/-4)
debian.master/abi/5.4.0-72.80/ppc64el/generic (+22435/-0)
debian.master/abi/5.4.0-72.80/ppc64el/generic.modules (+0/-2)
debian.master/abi/5.4.0-72.80/s390x/generic (+12679/-0)
debian.master/abi/5.4.0-72.80/s390x/generic.compiler (+1/-0)
debian.master/abi/5.4.0-72.80/s390x/generic.retpoline (+1/-0)
debian.master/changelog (+3336/-0)
debian.master/config/amd64/config.common.amd64 (+0/-1)
debian.master/config/annotations (+404/-374)
debian.master/config/arm64/config.common.arm64 (+0/-1)
debian.master/config/armhf/config.common.armhf (+0/-1)
debian.master/config/config.common.ubuntu (+11/-4)
debian.master/config/i386/config.common.i386 (+0/-1)
debian.master/config/ppc64el/config.common.ppc64el (+0/-1)
debian.master/config/s390x/config.common.s390x (+0/-1)
debian.master/reconstruct (+5/-0)
debian.master/rules.d/amd64.mk (+1/-0)
debian.master/tracking-bug (+1/-1)
debian.master/upstream-stable (+1/-1)
debian/certs/canonical-livepatch-all.pem (+121/-0)
debian/certs/ubuntu-drivers-all.pem (+125/-0)
debian/dkms-versions (+9/-10)
debian/rules (+17/-8)
debian/rules.d/0-common-vars.mk (+4/-0)
debian/rules.d/1-maintainer.mk (+2/-1)
debian/rules.d/2-binary-arch.mk (+17/-9)
debian/scripts/dkms-build--nvidia-N (+36/-30)
debian/scripts/misc/arch-has-odm-enabled.sh (+30/-0)
debian/scripts/misc/kernelconfig (+4/-3)
debian/tests/ubuntu-regression-suite (+1/-1)
dev/null (+0/-26)
drivers/acpi/acpi_configfs.c (+6/-1)
drivers/acpi/acpi_dbg.c (+3/-0)
drivers/acpi/acpi_extlog.c (+3/-3)
drivers/acpi/acpi_pnp.c (+3/-0)
drivers/acpi/acpica/acobject.h (+1/-0)
drivers/acpi/acpica/evhandler.c (+7/-0)
drivers/acpi/acpica/evregion.c (+47/-17)
drivers/acpi/acpica/evxfregn.c (+2/-0)
drivers/acpi/button.c (+19/-7)
drivers/acpi/device_pm.c (+29/-33)
drivers/acpi/device_sysfs.c (+6/-14)
drivers/acpi/ec.c (+3/-7)
drivers/acpi/evged.c (+1/-1)
drivers/acpi/hmat/hmat.c (+2/-1)
drivers/acpi/internal.h (+1/-1)
drivers/acpi/nfit/core.c (+1/-1)
drivers/acpi/numa.c (+1/-1)
drivers/acpi/property.c (+33/-11)
drivers/acpi/resource.c (+1/-1)
drivers/acpi/scan.c (+16/-1)
drivers/acpi/thermal.c (+38/-17)
drivers/acpi/video_detect.c (+16/-0)
drivers/amba/bus.c (+12/-8)
drivers/android/binder.c (+1/-0)
drivers/android/binder_alloc.c (+48/-0)
drivers/android/binder_alloc.h (+3/-1)
drivers/ata/ahci.h (+2/-0)
drivers/ata/ahci_brcm.c (+13/-1)
drivers/ata/ahci_mvebu.c (+1/-1)
drivers/ata/libahci_platform.c (+1/-1)
drivers/ata/sata_nv.c (+1/-1)
drivers/ata/sata_rcar.c (+1/-1)
drivers/atm/idt77252.c (+1/-1)
drivers/atm/nicstar.c (+2/-0)
drivers/auxdisplay/ht16k33.c (+1/-2)
drivers/base/core.c (+21/-6)
drivers/base/dd.c (+5/-4)
drivers/base/power/runtime.c (+58/-66)
drivers/base/regmap/regmap-debugfs.c (+7/-2)
drivers/base/regmap/regmap-sdw.c (+2/-2)
drivers/base/swnode.c (+9/-2)
drivers/block/Kconfig (+1/-0)
drivers/block/floppy.c (+14/-13)
drivers/block/nbd.c (+34/-18)
drivers/block/null_blk_zoned.c (+12/-7)
drivers/block/rsxx/core.c (+6/-3)
drivers/block/xen-blkback/blkback.c (+33/-19)
drivers/block/xen-blkback/xenbus.c (+5/-4)
drivers/block/xen-blkfront.c (+7/-13)
drivers/block/zram/zram_drv.c (+9/-4)
drivers/bluetooth/btmtksdio.c (+1/-1)
drivers/bluetooth/btqcomsmd.c (+19/-8)
drivers/bluetooth/btrtl.c (+46/-0)
drivers/bluetooth/btusb.c (+11/-11)
drivers/bluetooth/hci_h5.c (+8/-0)
drivers/bluetooth/hci_ldisc.c (+3/-4)
drivers/bluetooth/hci_serdev.c (+2/-2)
drivers/bus/fsl-mc/fsl-mc-allocator.c (+3/-1)
drivers/bus/fsl-mc/mc-io.c (+6/-1)
drivers/bus/mips_cdmm.c (+1/-3)
drivers/bus/ti-sysc.c (+3/-0)
drivers/char/hw_random/timeriomem-rng.c (+1/-1)
drivers/char/ipmi/ipmb_host.c (+177/-0)
drivers/char/random.c (+1/-2)
drivers/char/tpm/eventlog/efi.c (+5/-0)
drivers/char/tpm/tpm_tis.c (+27/-2)
drivers/char/tpm/tpm_tis_core.c (+28/-52)
drivers/char/virtio_console.c (+4/-4)
drivers/clk/at91/sam9x60.c (+1/-5)
drivers/clk/clk-ast2600.c (+27/-10)
drivers/clk/clk-s2mps11.c (+1/-0)
drivers/clk/ingenic/cgu.c (+10/-4)
drivers/clk/meson/Kconfig (+1/-0)
drivers/clk/meson/clk-pll.c (+6/-4)
drivers/clk/mvebu/armada-37xx-xtal.c (+2/-2)
drivers/clk/qcom/gcc-msm8998.c (+50/-50)
drivers/clk/renesas/r9a06g032-clocks.c (+1/-1)
drivers/clk/sunxi-ng/ccu-sun50i-a64.c (+1/-0)
drivers/clk/sunxi-ng/ccu-sun50i-h6.c (+5/-5)
drivers/clk/sunxi-ng/ccu-sun8i-h3.c (+1/-0)
drivers/clk/sunxi-ng/ccu_mp.c (+1/-1)
drivers/clk/tegra/clk-dfll.c (+2/-2)
drivers/clk/tegra/clk-id.h (+1/-0)
drivers/clk/tegra/clk-tegra-periph.c (+1/-1)
drivers/clk/tegra/clk-tegra30.c (+2/-0)
drivers/clk/ti/clockdomain.c (+2/-0)
drivers/clk/ti/fapll.c (+9/-2)
drivers/clocksource/Kconfig (+1/-0)
drivers/clocksource/arm_arch_timer.c (+18/-9)
drivers/clocksource/mxs_timer.c (+1/-4)
drivers/clocksource/timer-cadence-ttc.c (+9/-9)
drivers/clocksource/timer-orion.c (+8/-3)
drivers/cpufreq/acpi-cpufreq.c (+2/-1)
drivers/cpufreq/armada-8k-cpufreq.c (+6/-0)
drivers/cpufreq/brcmstb-avs-cpufreq.c (+17/-7)
drivers/cpufreq/highbank-cpufreq.c (+7/-0)
drivers/cpufreq/intel_pstate.c (+3/-2)
drivers/cpufreq/loongson1-cpufreq.c (+1/-0)
drivers/cpufreq/mediatek-cpufreq.c (+1/-0)
drivers/cpufreq/powernow-k8.c (+3/-6)
drivers/cpufreq/qcom-cpufreq-nvmem.c (+1/-0)
drivers/cpufreq/scpi-cpufreq.c (+1/-0)
drivers/cpufreq/sti-cpufreq.c (+11/-2)
drivers/cpufreq/sun50i-cpufreq-nvmem.c (+1/-0)
drivers/crypto/Kconfig (+1/-0)
drivers/crypto/amcc/crypto4xx_core.c (+1/-1)
drivers/crypto/bcm/cipher.c (+1/-1)
drivers/crypto/bcm/cipher.h (+2/-2)
drivers/crypto/bcm/util.c (+1/-1)
drivers/crypto/chelsio/chtls/chtls_cm.c (+39/-66)
drivers/crypto/chelsio/chtls/chtls_cm.h (+0/-3)
drivers/crypto/chelsio/chtls/chtls_hw.c (+4/-0)
drivers/crypto/chelsio/chtls/chtls_io.c (+5/-2)
drivers/crypto/inside-secure/safexcel.c (+1/-1)
drivers/crypto/omap-aes.c (+2/-1)
drivers/crypto/qat/qat_common/qat_hal.c (+1/-1)
drivers/crypto/sunxi-ss/sun4i-ss-cipher.c (+78/-61)
drivers/crypto/sunxi-ss/sun4i-ss.h (+2/-0)
drivers/crypto/talitos.c (+21/-17)
drivers/crypto/talitos.h (+1/-0)
drivers/dax/super.c (+1/-0)
drivers/dma-buf/dma-buf.c (+17/-4)
drivers/dma-buf/dma-resv.c (+1/-1)
drivers/dma/at_hdmac.c (+8/-3)
drivers/dma/dma-jz4780.c (+4/-3)
drivers/dma/dw-edma/dw-edma-core.c (+2/-2)
drivers/dma/fsldma.c (+6/-0)
drivers/dma/hsu/pci.c (+11/-10)
drivers/dma/mediatek/mtk-hsdma.c (+1/-0)
drivers/dma/mv_xor_v2.c (+3/-1)
drivers/dma/owl-dma.c (+1/-0)
drivers/dma/pl330.c (+1/-1)
drivers/dma/xilinx/xilinx_dma.c (+10/-5)
drivers/edac/amd64_edac.c (+14/-12)
drivers/edac/bluefield_edac.c (+158/-17)
drivers/edac/i10nm_base.c (+7/-4)
drivers/edac/mce_amd.c (+1/-1)
drivers/extcon/extcon-max77693.c (+1/-1)
drivers/extcon/extcon-ptn5150.c (+4/-4)
drivers/firmware/arm_scmi/base.c (+2/-0)
drivers/firmware/arm_scmi/clock.c (+2/-0)
drivers/firmware/arm_scmi/common.h (+2/-0)
drivers/firmware/arm_scmi/driver.c (+8/-0)
drivers/firmware/arm_scmi/perf.c (+2/-0)
drivers/firmware/arm_scmi/reset.c (+1/-3)
drivers/firmware/arm_scmi/sensors.c (+2/-0)
drivers/firmware/efi/Kconfig (+1/-1)
drivers/firmware/imx/Kconfig (+1/-0)
drivers/gpio/gpio-eic-sprd.c (+7/-2)
drivers/gpio/gpio-ep93xx.c (+118/-98)
drivers/gpio/gpio-mlxbf2.c (+414/-0)
drivers/gpio/gpio-mvebu.c (+21/-20)
drivers/gpio/gpio-pcf857x.c (+1/-1)
drivers/gpio/gpio-pcie-idio-24.c (+56/-6)
drivers/gpio/gpio-zynq.c (+2/-2)
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c (+2/-2)
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c (+3/-3)
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c (+1/-0)
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c (+10/-0)
drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c (+3/-3)
drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h (+1/-1)
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h (+2/-2)
drivers/gpu/drm/amd/amdgpu/cik_sdma.c (+12/-15)
drivers/gpu/drm/amd/amdgpu/cz_ih.c (+24/-13)
drivers/gpu/drm/amd/amdgpu/iceland_ih.c (+23/-13)
drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h (+1/-1)
drivers/gpu/drm/amd/amdgpu/soc15.c (+3/-2)
drivers/gpu/drm/amd/amdgpu/tonga_ih.c (+24/-13)
drivers/gpu/drm/amd/amdkfd/kfd_chardev.c (+2/-0)
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_v10.c (+3/-2)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c (+18/-13)
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c (+1/-1)
drivers/gpu/drm/amd/display/dc/bios/command_table.c (+61/-0)
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c (+11/-2)
drivers/gpu/drm/amd/display/dc/core/dc_link.c (+12/-3)
drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c (+5/-2)
drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c (+14/-0)
drivers/gpu/drm/amd/display/dc/dce/dce_stream_encoder.c (+1/-0)
drivers/gpu/drm/amd/display/dc/dce/dce_transform.c (+4/-4)
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_stream_encoder.c (+2/-2)
drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c (+11/-1)
drivers/gpu/drm/amd/display/dc/gpio/gpio_base.c (+2/-2)
drivers/gpu/drm/amd/display/dc/irq/dcn20/irq_service_dcn20.c (+2/-2)
drivers/gpu/drm/amd/display/dc/irq/dcn21/irq_service_dcn21.c (+22/-0)
drivers/gpu/drm/amd/display/dc/os_types.h (+1/-1)
drivers/gpu/drm/amd/display/modules/color/color_gamma.c (+1/-1)
drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c (+5/-1)
drivers/gpu/drm/amd/powerplay/inc/hwmgr.h (+1/-0)
drivers/gpu/drm/amd/powerplay/inc/smumgr.h (+2/-0)
drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c (+25/-4)
drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c (+8/-0)
drivers/gpu/drm/aspeed/Kconfig (+1/-0)
drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c (+10/-2)
drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c (+7/-2)
drivers/gpu/drm/drm_atomic_helper.c (+1/-1)
drivers/gpu/drm/drm_dp_aux_dev.c (+1/-1)
drivers/gpu/drm/drm_dp_helper.c (+2/-0)
drivers/gpu/drm/drm_fb_helper.c (+10/-5)
drivers/gpu/drm/drm_gem_shmem_helper.c (+18/-7)
drivers/gpu/drm/drm_ioc32.c (+11/-0)
drivers/gpu/drm/drm_syncobj.c (+5/-3)
drivers/gpu/drm/gma500/cdv_intel_dp.c (+1/-1)
drivers/gpu/drm/gma500/oaktrail_hdmi_i2c.c (+13/-9)
drivers/gpu/drm/gma500/psb_drv.c (+2/-0)
drivers/gpu/drm/gma500/psb_irq.c (+12/-22)
drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c (+0/-1)
drivers/gpu/drm/i915/display/intel_display.c (+2/-1)
drivers/gpu/drm/i915/display/intel_dp.c (+1/-1)
drivers/gpu/drm/i915/display/intel_hdmi.c (+5/-1)
drivers/gpu/drm/i915/display/intel_panel.c (+5/-4)
drivers/gpu/drm/i915/display/vlv_dsi.c (+13/-3)
drivers/gpu/drm/i915/gem/i915_gem_domain.c (+13/-15)
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c (+4/-2)
drivers/gpu/drm/i915/gt/intel_engine_cs.c (+2/-1)
drivers/gpu/drm/i915/gt/intel_lrc.c (+6/-0)
drivers/gpu/drm/i915/gt/intel_mocs.c (+13/-1)
drivers/gpu/drm/i915/i915_drv.h (+6/-2)
drivers/gpu/drm/i915/i915_gpu_error.c (+3/-0)
drivers/gpu/drm/i915/intel_uncore.c (+26/-1)
drivers/gpu/drm/mcde/mcde_drv.c (+2/-2)
drivers/gpu/drm/mediatek/mtk_hdmi_phy.c (+3/-2)
drivers/gpu/drm/meson/meson_drv.c (+11/-0)
drivers/gpu/drm/msm/adreno/a5xx_gpu.c (+0/-2)
drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c (+1/-1)
drivers/gpu/drm/msm/dsi/phy/dsi_phy_20nm.c (+1/-1)
drivers/gpu/drm/msm/dsi/pll/dsi_pll_10nm.c (+8/-0)
drivers/gpu/drm/msm/msm_drv.c (+4/-4)
drivers/gpu/drm/nouveau/dispnv50/disp.c (+2/-2)
drivers/gpu/drm/nouveau/dispnv50/disp.h (+1/-1)
drivers/gpu/drm/nouveau/dispnv50/wimmc37b.c (+1/-1)
drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/conn.h (+1/-0)
drivers/gpu/drm/nouveau/nouveau_chan.c (+1/-0)
drivers/gpu/drm/nouveau/nouveau_connector.c (+1/-0)
drivers/gpu/drm/nouveau/nouveau_gem.c (+2/-1)
drivers/gpu/drm/nouveau/nouveau_svm.c (+7/-11)
drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c (+1/-1)
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgm200.c (+4/-4)
drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gf100.c (+7/-3)
drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gk104.c (+7/-3)
drivers/gpu/drm/nouveau/nvkm/subdev/mmu/base.c (+3/-3)
drivers/gpu/drm/omapdrm/omap_dmm_tiler.c (+1/-0)
drivers/gpu/drm/panfrost/panfrost_gem.c (+1/-3)
drivers/gpu/drm/panfrost/panfrost_gem.h (+1/-1)
drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c (+11/-3)
drivers/gpu/drm/qxl/qxl_display.c (+1/-0)
drivers/gpu/drm/scheduler/sched_main.c (+3/-0)
drivers/gpu/drm/sun4i/sun4i_frontend.c (+10/-26)
drivers/gpu/drm/sun4i/sun4i_frontend.h (+1/-5)
drivers/gpu/drm/sun4i/sun4i_tcon.c (+27/-19)
drivers/gpu/drm/sun4i/sun4i_tcon.h (+7/-0)
drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c (+3/-4)
drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c (+9/-17)
drivers/gpu/drm/tegra/drm.c (+1/-1)
drivers/gpu/drm/tegra/sor.c (+8/-2)
drivers/gpu/drm/ttm/ttm_bo.c (+1/-1)
drivers/gpu/drm/tve200/tve200_drv.c (+2/-2)
drivers/gpu/drm/vc4/vc4_drv.c (+1/-0)
drivers/gpu/drm/vc4/vc4_plane.c (+14/-4)
drivers/gpu/drm/virtio/virtgpu_vq.c (+3/-2)
drivers/hid/hid-core.c (+6/-3)
drivers/hid/hid-cypress.c (+39/-5)
drivers/hid/hid-ids.h (+13/-0)
drivers/hid/hid-input.c (+5/-0)
drivers/hid/hid-ite.c (+60/-1)
drivers/hid/hid-logitech-dj.c (+32/-2)
drivers/hid/hid-logitech-hidpp.c (+32/-0)
drivers/hid/hid-mf.c (+2/-0)
drivers/hid/hid-multitouch.c (+4/-0)
drivers/hid/hid-quirks.c (+7/-0)
drivers/hid/hid-sensor-hub.c (+2/-1)
drivers/hid/hid-uclogic-core.c (+2/-0)
drivers/hid/hid-uclogic-params.c (+2/-0)
drivers/hid/i2c-hid/i2c-hid-core.c (+2/-0)
drivers/hid/i2c-hid/i2c-hid-dmi-quirks.c (+8/-0)
drivers/hid/intel-ish-hid/ipc/hw-ish.h (+1/-0)
drivers/hid/intel-ish-hid/ipc/pci-ish.c (+1/-0)
drivers/hid/wacom_sys.c (+35/-5)
drivers/hid/wacom_wac.c (+9/-2)
drivers/hid/wacom_wac.h (+1/-1)
drivers/hsi/controllers/omap_ssi_core.c (+2/-2)
drivers/hv/channel_mgmt.c (+1/-2)
drivers/hv/hv.c (+6/-2)
drivers/hv/hv_balloon.c (+1/-1)
drivers/hwmon/Kconfig (+11/-0)
drivers/hwmon/Makefile (+1/-0)
drivers/hwmon/ahc1ec0-hwmon.c (+660/-0)
drivers/hwmon/ina3221.c (+1/-1)
drivers/hwmon/pwm-fan.c (+20/-8)
drivers/hwtracing/coresight/coresight-etb10.c (+3/-1)
drivers/hwtracing/coresight/coresight-priv.h (+2/-0)
drivers/hwtracing/coresight/coresight-tmc-etf.c (+3/-1)
drivers/hwtracing/coresight/coresight-tmc-etr.c (+3/-1)
drivers/hwtracing/intel_th/pci.c (+5/-0)
drivers/hwtracing/stm/heartbeat.c (+4/-2)
drivers/i2c/busses/Kconfig (+13/-0)
drivers/i2c/busses/Makefile (+4/-0)
drivers/i2c/busses/i2c-bcm-iproc.c (+181/-50)
drivers/i2c/busses/i2c-brcmstb.c (+1/-1)
drivers/i2c/busses/i2c-i801.c (+1/-1)
drivers/i2c/busses/i2c-imx.c (+48/-18)
drivers/i2c/busses/i2c-mlxbf.c (+2454/-0)
drivers/i2c/busses/i2c-mt65xx.c (+20/-7)
drivers/i2c/busses/i2c-octeon-core.c (+1/-1)
drivers/i2c/busses/i2c-qcom-geni.c (+45/-20)
drivers/i2c/busses/i2c-qup.c (+2/-1)
drivers/i2c/busses/i2c-rcar.c (+5/-8)
drivers/i2c/busses/i2c-sh_mobile.c (+66/-20)
drivers/i2c/busses/i2c-sprd.c (+7/-1)
drivers/i2c/busses/i2c-stm32f7.c (+10/-1)
drivers/i2c/busses/i2c-tegra-bpmp.c (+1/-1)
drivers/i3c/master.c (+4/-1)
drivers/ide/ide-atapi.c (+0/-1)
drivers/ide/ide-io.c (+0/-5)
drivers/iio/accel/kxcjk-1013.c (+46/-5)
drivers/iio/adc/mt6577_auxadc.c (+4/-2)
drivers/iio/adc/rcar-gyroadc.c (+15/-6)
drivers/iio/adc/rockchip_saradc.c (+1/-1)
drivers/iio/adc/ti-adc0832.c (+8/-3)
drivers/iio/adc/ti-adc12138.c (+9/-4)
drivers/iio/adc/ti-ads124s08.c (+10/-3)
drivers/iio/dac/ad5504.c (+2/-2)
drivers/iio/gyro/itg3200_buffer.c (+11/-4)
drivers/iio/imu/bmi160/bmi160.h (+7/-0)
drivers/iio/imu/bmi160/bmi160_core.c (+2/-4)
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c (+21/-5)
drivers/iio/industrialio-buffer.c (+3/-3)
drivers/iio/light/Kconfig (+1/-0)
drivers/iio/light/rpr0521.c (+13/-4)
drivers/iio/light/si1145.c (+11/-8)
drivers/iio/light/st_uvis25.h (+5/-0)
drivers/iio/light/st_uvis25_core.c (+5/-3)
drivers/iio/magnetometer/mag3110.c (+9/-4)
drivers/iio/pressure/mpl3115.c (+8/-1)
drivers/iio/trigger/iio-trig-hrtimer.c (+2/-2)
drivers/infiniband/Kconfig (+3/-0)
drivers/infiniband/core/addr.c (+5/-6)
drivers/infiniband/core/cm.c (+6/-4)
drivers/infiniband/core/cma.c (+4/-3)
drivers/infiniband/core/device.c (+4/-3)
drivers/infiniband/core/restrack.c (+1/-0)
drivers/infiniband/core/user_mad.c (+16/-1)
drivers/infiniband/hw/bnxt_re/ib_verbs.c (+1/-0)
drivers/infiniband/hw/cxgb4/cq.c (+3/-0)
drivers/infiniband/hw/cxgb4/qp.c (+1/-1)
drivers/infiniband/hw/hns/hns_roce_device.h (+1/-1)
drivers/infiniband/hw/hns/hns_roce_hw_v2.c (+8/-8)
drivers/infiniband/hw/hns/hns_roce_main.c (+1/-2)
drivers/infiniband/hw/i40iw/i40iw_main.c (+0/-5)
drivers/infiniband/hw/i40iw/i40iw_verbs.c (+7/-29)
drivers/infiniband/hw/mlx5/devx.c (+6/-2)
drivers/infiniband/hw/mlx5/main.c (+3/-4)
drivers/infiniband/hw/mthca/mthca_cq.c (+7/-5)
drivers/infiniband/hw/mthca/mthca_dev.h (+0/-1)
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c (+1/-1)
drivers/infiniband/hw/qedr/qedr_iw_cm.c (+1/-0)
drivers/infiniband/hw/usnic/usnic_ib_verbs.c (+3/-0)
drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c (+1/-1)
drivers/infiniband/sw/rdmavt/Kconfig (+2/-1)
drivers/infiniband/sw/rxe/Kconfig (+2/-1)
drivers/infiniband/sw/rxe/rxe_net.c (+5/-0)
drivers/infiniband/sw/rxe/rxe_recv.c (+18/-9)
drivers/infiniband/sw/rxe/rxe_req.c (+2/-1)
drivers/infiniband/sw/siw/Kconfig (+1/-0)
drivers/infiniband/sw/siw/siw.h (+1/-1)
drivers/infiniband/sw/siw/siw_main.c (+1/-1)
drivers/infiniband/sw/siw/siw_qp.c (+142/-129)
drivers/infiniband/sw/siw/siw_qp_rx.c (+18/-8)
drivers/infiniband/sw/siw/siw_qp_tx.c (+2/-2)
drivers/infiniband/sw/siw/siw_verbs.c (+14/-6)
drivers/input/joydev.c (+5/-2)
drivers/input/joystick/xpad.c (+19/-1)
drivers/input/keyboard/applespi.c (+15/-6)
drivers/input/keyboard/cros_ec_keyb.c (+1/-0)
drivers/input/keyboard/omap4-keypad.c (+53/-36)
drivers/input/keyboard/sunkbd.c (+33/-8)
drivers/input/misc/adxl34x.c (+1/-1)
drivers/input/misc/cm109.c (+5/-2)
drivers/input/mouse/cyapa_gen6.c (+1/-1)
drivers/input/mouse/elan_i2c.h (+23/-1)
drivers/input/mouse/elan_i2c_core.c (+77/-56)
drivers/input/mouse/elan_i2c_i2c.c (+24/-10)
drivers/input/mouse/elan_i2c_smbus.c (+22/-3)
drivers/input/mouse/elantech.c (+97/-2)
drivers/input/mouse/elantech.h (+4/-0)
drivers/input/serio/hil_mlc.c (+18/-3)
drivers/input/serio/hp_sdc_mlc.c (+4/-4)
drivers/input/serio/i8042-x86ia64io.h (+52/-0)
drivers/input/serio/i8042.c (+13/-2)
drivers/input/touchscreen/Kconfig (+1/-0)
drivers/input/touchscreen/ads7846.c (+31/-21)
drivers/input/touchscreen/elo.c (+3/-1)
drivers/input/touchscreen/goodix.c (+12/-0)
drivers/input/touchscreen/raydium_i2c_ts.c (+2/-1)
drivers/input/touchscreen/sur40.c (+1/-0)
drivers/interconnect/qcom/qcs404.c (+2/-2)
drivers/iommu/amd_iommu.c (+6/-4)
drivers/iommu/amd_iommu_init.c (+34/-11)
drivers/iommu/amd_iommu_types.h (+6/-2)
drivers/iommu/dmar.c (+31/-14)
drivers/iommu/intel-iommu.c (+36/-17)
drivers/iommu/intel-svm.c (+21/-3)
drivers/iommu/intel_irq_remapping.c (+2/-0)
drivers/irqchip/irq-alpine-msi.c (+1/-2)
drivers/irqchip/irq-gic-v3-its.c (+3/-13)
drivers/irqchip/irq-mips-cpu.c (+7/-0)
drivers/irqchip/irq-sni-exiu.c (+1/-1)
drivers/isdn/mISDN/Kconfig (+1/-0)
drivers/leds/led-triggers.c (+6/-4)
drivers/leds/leds-bcm6328.c (+1/-1)
drivers/leds/leds-bcm6358.c (+1/-1)
drivers/lightnvm/Kconfig (+1/-0)
drivers/lightnvm/core.c (+1/-2)
drivers/md/Kconfig (+1/-0)
drivers/md/bcache/bcache.h (+7/-0)
drivers/md/bcache/btree.c (+19/-2)
drivers/md/bcache/journal.c (+2/-2)
drivers/md/bcache/super.c (+20/-0)
drivers/md/bcache/sysfs.c (+23/-0)
drivers/md/bcache/writeback.c (+42/-0)
drivers/md/bcache/writeback.h (+4/-0)
drivers/md/dm-bufio.c (+10/-0)
drivers/md/dm-core.h (+4/-0)
drivers/md/dm-crypt.c (+1/-0)
drivers/md/dm-era-target.c (+60/-33)
drivers/md/dm-integrity.c (+77/-9)
drivers/md/dm-ioctl.c (+1/-0)
drivers/md/dm-raid.c (+9/-0)
drivers/md/dm-snap.c (+24/-0)
drivers/md/dm-table.c (+85/-110)
drivers/md/dm-verity-fec.c (+12/-11)
drivers/md/dm-verity-target.c (+11/-1)
drivers/md/dm-writecache.c (+20/-2)
drivers/md/dm.c (+66/-6)
drivers/md/dm.h (+1/-1)
drivers/md/md-bitmap.c (+1/-1)
drivers/md/md-cluster.c (+38/-29)
drivers/md/md.c (+17/-26)
drivers/md/md.h (+0/-2)
drivers/md/raid0.c (+12/-2)
drivers/md/raid10.c (+59/-367)
drivers/md/raid10.h (+0/-1)
drivers/md/raid5.c (+2/-2)
drivers/media/common/siano/smsdvb-main.c (+4/-1)
drivers/media/i2c/imx214.c (+1/-1)
drivers/media/i2c/imx274.c (+5/-3)
drivers/media/i2c/max2175.c (+1/-1)
drivers/media/i2c/ov5670.c (+2/-1)
drivers/media/pci/cx23885/cx23885-core.c (+4/-0)
drivers/media/pci/cx25821/cx25821-core.c (+3/-1)
drivers/media/pci/intel/ipu3/ipu3-cio2.c (+34/-28)
drivers/media/pci/intel/ipu3/ipu3-cio2.h (+1/-0)
drivers/media/pci/netup_unidvb/netup_unidvb_spi.c (+3/-2)
drivers/media/pci/saa7134/saa7134-empress.c (+4/-1)
drivers/media/pci/saa7146/mxb.c (+10/-9)
drivers/media/pci/smipcie/smipcie-ir.c (+26/-20)
drivers/media/pci/solo6x10/solo6x10-g723.c (+1/-1)
drivers/media/pci/tw5864/tw5864-video.c (+6/-0)
drivers/media/platform/aspeed-video.c (+3/-3)
drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c (+7/-0)
drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_pm.c (+13/-6)
drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_pm.c (+19/-7)
drivers/media/platform/pxa_camera.c (+3/-0)
drivers/media/platform/qcom/camss/camss-video.c (+1/-0)
drivers/media/platform/vsp1/vsp1_drm.c (+3/-3)
drivers/media/platform/vsp1/vsp1_drv.c (+3/-1)
drivers/media/rc/Makefile (+1/-0)
drivers/media/rc/keymaps/Makefile (+0/-1)
drivers/media/rc/keymaps/rc-cec.c (+11/-17)
drivers/media/rc/mceusb.c (+9/-2)
drivers/media/rc/rc-main.c (+8/-2)
drivers/media/rc/sunxi-cir.c (+2/-0)
drivers/media/tuners/qm1d1c0042.c (+3/-1)
drivers/media/usb/dvb-usb-v2/lmedm04.c (+1/-1)
drivers/media/usb/dvb-usb/gp8psk.c (+1/-1)
drivers/media/usb/em28xx/em28xx-core.c (+1/-5)
drivers/media/usb/gspca/gspca.c (+1/-0)
drivers/media/usb/msi2500/msi2500.c (+1/-1)
drivers/media/usb/pwc/pwc-if.c (+13/-9)
drivers/media/usb/tm6000/tm6000-dvb.c (+4/-0)
drivers/media/usb/tm6000/tm6000-video.c (+3/-2)
drivers/media/usb/usbtv/usbtv-audio.c (+1/-1)
drivers/media/usb/uvc/uvc_ctrl.c (+16/-11)
drivers/media/usb/uvc/uvc_driver.c (+5/-2)
drivers/media/usb/uvc/uvc_v4l2.c (+9/-9)
drivers/media/v4l2-core/v4l2-ctrls.c (+2/-1)
drivers/media/v4l2-core/v4l2-fwnode.c (+5/-1)
drivers/media/v4l2-core/v4l2-ioctl.c (+7/-12)
drivers/memory/emif.c (+5/-28)
drivers/memory/mtk-smi.c (+2/-2)
drivers/memory/ti-aemif.c (+6/-2)
drivers/memstick/core/memstick.c (+0/-1)
drivers/memstick/host/r592.c (+8/-4)
drivers/message/fusion/mptscsih.c (+8/-5)
drivers/mfd/Kconfig (+11/-0)
drivers/mfd/Makefile (+2/-0)
drivers/mfd/ahc1ec0.c (+808/-0)
drivers/mfd/bd9571mwv.c (+3/-3)
drivers/mfd/sprd-sc27xx-spi.c (+27/-1)
drivers/mfd/wm831x-auxadc.c (+1/-2)
drivers/misc/cardreader/rts5227.c (+5/-0)
drivers/misc/cardreader/rtsx_pcr.c (+0/-4)
drivers/misc/cxl/pci.c (+2/-2)
drivers/misc/eeprom/eeprom_93xx46.c (+16/-0)
drivers/misc/fastrpc.c (+5/-0)
drivers/misc/habanalabs/device.c (+10/-8)
drivers/misc/habanalabs/habanalabs_drv.c (+1/-0)
drivers/misc/lkdtm/Makefile (+1/-1)
drivers/misc/lkdtm/rodata.c (+1/-1)
drivers/misc/mei/client.h (+2/-2)
drivers/misc/mei/hbm.c (+1/-1)
drivers/misc/pvpanic.c (+1/-0)
drivers/misc/vmw_vmci/vmci_context.c (+1/-1)
drivers/misc/vmw_vmci/vmci_queue_pair.c (+4/-1)
drivers/mmc/core/block.c (+1/-1)
drivers/mmc/core/bus.c (+5/-6)
drivers/mmc/core/mmc.c (+11/-4)
drivers/mmc/core/queue.c (+3/-1)
drivers/mmc/core/sdio_cis.c (+6/-0)
drivers/mmc/host/mtk-sd.c (+10/-8)
drivers/mmc/host/mxs-mmc.c (+1/-1)
drivers/mmc/host/pxamci.c (+1/-0)
drivers/mmc/host/renesas_sdhi_core.c (+1/-0)
drivers/mmc/host/renesas_sdhi_internal_dmac.c (+2/-2)
drivers/mmc/host/sdhci-acpi.c (+37/-0)
drivers/mmc/host/sdhci-esdhc-imx.c (+2/-1)
drivers/mmc/host/sdhci-of-dwcmshc.c (+1/-0)
drivers/mmc/host/sdhci-of-esdhc.c (+13/-0)
drivers/mmc/host/sdhci-pci-core.c (+165/-2)
drivers/mmc/host/sdhci-sprd.c (+3/-3)
drivers/mmc/host/sdhci-xenon.c (+6/-1)
drivers/mmc/host/sdhci.c (+4/-2)
drivers/mmc/host/usdhi6rol0.c (+3/-1)
drivers/mmc/host/via-sdmmc.c (+3/-0)
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c (+27/-11)
drivers/mtd/nand/raw/meson_nand.c (+5/-2)
drivers/mtd/nand/raw/qcom_nandc.c (+2/-0)
drivers/mtd/parsers/afs.c (+1/-3)
drivers/mtd/parsers/cmdlinepart.c (+13/-1)
drivers/mtd/parsers/parser_imagetag.c (+4/-0)
drivers/mtd/spi-nor/cadence-quadspi.c (+1/-1)
drivers/mtd/spi-nor/hisi-sfc.c (+3/-1)
drivers/mtd/spi-nor/spi-nor.c (+10/-10)
drivers/mtd/ubi/wl.c (+13/-0)
drivers/net/bonding/bond_alb.c (+30/-16)
drivers/net/bonding/bond_main.c (+514/-123)
drivers/net/bonding/bond_options.c (+40/-0)
drivers/net/bonding/bond_sysfs_slave.c (+1/-17)
drivers/net/can/Kconfig (+1/-0)
drivers/net/can/dev.c (+14/-6)
drivers/net/can/flexcan.c (+53/-32)
drivers/net/can/kvaser_pciefd.c (+2/-2)
drivers/net/can/m_can/Kconfig (+2/-1)
drivers/net/can/m_can/m_can.c (+17/-10)
drivers/net/can/m_can/m_can.h (+1/-0)
drivers/net/can/m_can/tcan4x5x.c (+9/-31)
drivers/net/can/peak_canfd/peak_canfd.c (+8/-3)
drivers/net/can/rx-offload.c (+2/-2)
drivers/net/can/softing/softing_main.c (+7/-2)
drivers/net/can/ti_hecc.c (+13/-8)
drivers/net/can/usb/gs_usb.c (+70/-61)
drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c (+1/-1)
drivers/net/can/usb/mcba_usb.c (+2/-2)
drivers/net/can/usb/peak_usb/pcan_usb_core.c (+46/-5)
drivers/net/can/usb/peak_usb/pcan_usb_fd.c (+41/-15)
drivers/net/can/vxcan.c (+4/-2)
drivers/net/can/xilinx_can.c (+3/-3)
drivers/net/dsa/b53/b53_common.c (+1/-1)
drivers/net/dsa/bcm_sf2.c (+6/-2)
drivers/net/dsa/lantiq_gswip.c (+22/-23)
drivers/net/dsa/mv88e6xxx/chip.c (+7/-1)
drivers/net/dsa/mv88e6xxx/global1.c (+31/-0)
drivers/net/dsa/mv88e6xxx/global1.h (+1/-0)
drivers/net/dsa/mv88e6xxx/global1_vtu.c (+53/-10)
drivers/net/ethernet/allwinner/sun4i-emac.c (+5/-2)
drivers/net/ethernet/amazon/ena/ena_admin_defs.h (+69/-59)
drivers/net/ethernet/amazon/ena/ena_com.c (+126/-121)
drivers/net/ethernet/amazon/ena/ena_com.h (+12/-30)
drivers/net/ethernet/amazon/ena/ena_common_defs.h (+2/-29)
drivers/net/ethernet/amazon/ena/ena_eth_com.c (+34/-53)
drivers/net/ethernet/amazon/ena/ena_eth_com.h (+5/-32)
drivers/net/ethernet/amazon/ena/ena_eth_io_defs.h (+2/-29)
drivers/net/ethernet/amazon/ena/ena_ethtool.c (+128/-75)
drivers/net/ethernet/amazon/ena/ena_netdev.c (+128/-140)
drivers/net/ethernet/amazon/ena/ena_netdev.h (+11/-29)
drivers/net/ethernet/amazon/ena/ena_pci_id_tbl.h (+2/-29)
drivers/net/ethernet/amazon/ena/ena_regs_defs.h (+2/-29)
drivers/net/ethernet/amd/xgbe/xgbe-common.h (+14/-0)
drivers/net/ethernet/amd/xgbe/xgbe-drv.c (+1/-0)
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c (+1/-2)
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c (+38/-1)
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c (+1/-1)
drivers/net/ethernet/atheros/ag71xx.c (+1/-3)
drivers/net/ethernet/broadcom/b44.c (+2/-1)
drivers/net/ethernet/broadcom/bcmsysport.c (+1/-0)
drivers/net/ethernet/broadcom/bnxt/bnxt.c (+51/-21)
drivers/net/ethernet/broadcom/bnxt/bnxt.h (+1/-0)
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c (+1/-1)
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c (+6/-2)
drivers/net/ethernet/broadcom/genet/bcmgenet.c (+3/-1)
drivers/net/ethernet/cadence/macb_main.c (+2/-1)
drivers/net/ethernet/chelsio/cxgb3/sge.c (+1/-0)
drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c (+28/-29)
drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.h (+3/-0)
drivers/net/ethernet/chelsio/cxgb4/sge.c (+8/-3)
drivers/net/ethernet/chelsio/cxgb4/t4_pci_id_tbl.h (+1/-0)
drivers/net/ethernet/chelsio/cxgb4/t4_tcb.h (+4/-0)
drivers/net/ethernet/davicom/dm9000.c (+17/-4)
drivers/net/ethernet/ethoc.c (+2/-1)
drivers/net/ethernet/faraday/ftgmac100.c (+4/-0)
drivers/net/ethernet/freescale/enetc/enetc.c (+7/-12)
drivers/net/ethernet/freescale/enetc/enetc.h (+5/-0)
drivers/net/ethernet/freescale/enetc/enetc_ethtool.c (+7/-3)
drivers/net/ethernet/freescale/enetc/enetc_hw.h (+9/-3)
drivers/net/ethernet/freescale/enetc/enetc_pf.c (+94/-5)
drivers/net/ethernet/freescale/enetc/enetc_vf.c (+7/-0)
drivers/net/ethernet/freescale/fs_enet/mii-bitbang.c (+1/-0)
drivers/net/ethernet/freescale/fs_enet/mii-fec.c (+1/-0)
drivers/net/ethernet/freescale/gianfar.c (+3/-11)
drivers/net/ethernet/freescale/ucc_geth.c (+2/-1)
drivers/net/ethernet/freescale/ucc_geth.h (+8/-1)
drivers/net/ethernet/hisilicon/hns/hns_ethtool.c (+4/-0)
drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h (+2/-2)
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h (+3/-3)
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.h (+0/-4)
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c (+12/-5)
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c (+1/-1)
drivers/net/ethernet/ibm/ibmvnic.c (+108/-15)
drivers/net/ethernet/intel/i40e/i40e.h (+4/-0)
drivers/net/ethernet/intel/i40e/i40e_ethtool.c (+9/-7)
drivers/net/ethernet/intel/i40e/i40e_main.c (+36/-38)
drivers/net/ethernet/intel/i40e/i40e_txrx.c (+38/-17)
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c (+22/-32)
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h (+0/-1)
drivers/net/ethernet/intel/i40e/i40e_xsk.c (+12/-6)
drivers/net/ethernet/intel/iavf/iavf_main.c (+1/-3)
drivers/net/ethernet/intel/igc/igc_ethtool.c (+20/-7)
drivers/net/ethernet/intel/igc/igc_i225.c (+1/-2)
drivers/net/ethernet/intel/igc/igc_mac.c (+1/-1)
drivers/net/ethernet/intel/igc/igc_main.c (+8/-6)
drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c (+9/-4)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c (+17/-7)
drivers/net/ethernet/intel/ixgbevf/ipsec.c (+5/-0)
drivers/net/ethernet/korina.c (+1/-1)
drivers/net/ethernet/lantiq_xrx200.c (+2/-0)
drivers/net/ethernet/marvell/mvneta.c (+9/-2)
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c (+35/-24)
drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.c (+41/-7)
drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.h (+1/-1)
drivers/net/ethernet/marvell/octeontx2/af/cgx.c (+11/-3)
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c (+1/-1)
drivers/net/ethernet/mellanox/mlx4/en_netdev.c (+16/-7)
drivers/net/ethernet/mellanox/mlx4/en_tx.c (+33/-7)
drivers/net/ethernet/mellanox/mlx4/fw.c (+3/-3)
drivers/net/ethernet/mellanox/mlx4/fw.h (+2/-2)
drivers/net/ethernet/mellanox/mlx4/mlx4_en.h (+12/-1)
drivers/net/ethernet/mellanox/mlx4/resource_tracker.c (+1/-0)
drivers/net/ethernet/mellanox/mlx5/core/cmd.c (+96/-13)
drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h (+14/-0)
drivers/net/ethernet/mellanox/mlx5/core/en_accel/en_accel.h (+3/-1)
drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c (+2/-2)
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c (+18/-6)
drivers/net/ethernet/mellanox/mlx5/core/en_fs.c (+3/-0)
drivers/net/ethernet/mellanox/mlx5/core/en_main.c (+3/-8)
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c (+4/-0)
drivers/net/ethernet/mellanox/mlx5/core/en_stats.h (+2/-0)
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c (+58/-5)
drivers/net/ethernet/mellanox/mlx5/core/en_tx.c (+2/-2)
drivers/net/ethernet/mellanox/mlx5/core/eq.c (+93/-66)
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c (+42/-7)
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c (+28/-3)
drivers/net/ethernet/mellanox/mlx5/core/lib/eq.h (+2/-0)
drivers/net/ethernet/mellanox/mlx5/core/main.c (+19/-1)
drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c (+19/-2)
drivers/net/ethernet/mellanox/mlx5/core/rdma.c (+1/-1)
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_cmd.c (+1/-0)
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_domain.c (+5/-0)
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_types.h (+1/-0)
drivers/net/ethernet/mellanox/mlxbf_gige/Kconfig (+4/-0)
drivers/net/ethernet/mellanox/mlxbf_gige/Makefile (+6/-0)
drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige.h (+45/-0)
drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_ethtool.c (+178/-0)
drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_intr.c (+143/-0)
drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c (+133/-0)
drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_mdio.c (+26/-0)
drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_regs.h (+4/-0)
drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_rx.c (+299/-0)
drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_tx.c (+279/-0)
drivers/net/ethernet/mellanox/mlxsw/core.c (+7/-1)
drivers/net/ethernet/mellanox/mlxsw/core_thermal.c (+8/-5)
drivers/net/ethernet/microchip/lan743x_ethtool.c (+5/-4)
drivers/net/ethernet/microchip/lan743x_main.c (+33/-35)
drivers/net/ethernet/microchip/lan743x_main.h (+0/-3)
drivers/net/ethernet/mscc/ocelot.c (+1/-3)
drivers/net/ethernet/natsemi/macsonic.c (+10/-2)
drivers/net/ethernet/natsemi/xtsonic.c (+5/-2)
drivers/net/ethernet/pasemi/pasemi_mac.c (+6/-2)
drivers/net/ethernet/pensando/ionic/ionic_ethtool.c (+5/-0)
drivers/net/ethernet/pensando/ionic/ionic_txrx.c (+1/-1)
drivers/net/ethernet/qlogic/Kconfig (+1/-0)
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c (+1/-6)
drivers/net/ethernet/qlogic/qed/qed_iwarp.c (+9/-3)
drivers/net/ethernet/qlogic/qede/qede_fp.c (+5/-0)
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c (+2/-1)
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c (+1/-0)
drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c (+5/-0)
drivers/net/ethernet/realtek/r8169_main.c (+14/-9)
drivers/net/ethernet/renesas/ravb_main.c (+7/-3)
drivers/net/ethernet/renesas/sh_eth.c (+9/-2)
drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c (+3/-3)
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c (+44/-14)
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c (+18/-1)
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c (+0/-4)
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c (+28/-4)
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c (+6/-1)
drivers/net/ethernet/sun/sunvnet_common.c (+4/-19)
drivers/net/ethernet/ti/cpsw.c (+1/-0)
drivers/net/ethernet/ti/cpts.c (+2/-0)
drivers/net/ethernet/xilinx/ll_temac_main.c (+14/-16)
drivers/net/ethernet/xilinx/xilinx_axienet_main.c (+12/-14)
drivers/net/geneve.c (+1/-2)
drivers/net/gtp.c (+10/-11)
drivers/net/macvlan.c (+2/-3)
drivers/net/netdevsim/netdev.c (+1/-0)
drivers/net/phy/phy.c (+4/-3)
drivers/net/phy/sfp.c (+2/-1)
drivers/net/tap.c (+3/-4)
drivers/net/team/team.c (+3/-3)
drivers/net/tun.c (+14/-6)
drivers/net/usb/cdc_ether.c (+7/-0)
drivers/net/usb/cdc_ncm.c (+6/-5)
drivers/net/usb/ipheth.c (+1/-1)
drivers/net/usb/qmi_wwan.c (+6/-15)
drivers/net/usb/r8152.c (+1/-0)
drivers/net/usb/rndis_host.c (+1/-1)
drivers/net/virtio_net.c (+8/-5)
drivers/net/vrf.c (+77/-25)
drivers/net/vxlan.c (+14/-4)
drivers/net/wan/Kconfig (+1/-0)
drivers/net/wan/cosa.c (+1/-0)
drivers/net/wan/hdlc_fr.c (+51/-47)
drivers/net/wan/hdlc_ppp.c (+7/-0)
drivers/net/wan/lapbether.c (+0/-3)
drivers/net/wireless/ath/ath10k/htt_rx.c (+7/-1)
drivers/net/wireless/ath/ath10k/mac.c (+4/-11)
drivers/net/wireless/ath/ath10k/sdio.c (+4/-0)
drivers/net/wireless/ath/ath10k/snoc.c (+3/-2)
drivers/net/wireless/ath/ath10k/usb.c (+6/-1)
drivers/net/wireless/ath/ath10k/wmi-tlv.c (+3/-1)
drivers/net/wireless/ath/ath10k/wmi.c (+7/-2)
drivers/net/wireless/ath/ath10k/wmi.h (+1/-0)
drivers/net/wireless/ath/ath9k/ath9k.h (+2/-1)
drivers/net/wireless/ath/ath9k/debug.c (+4/-1)
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c (+1/-1)
drivers/net/wireless/ath/ath9k/xmit.c (+6/-0)
drivers/net/wireless/ath/wil6210/Kconfig (+1/-0)
drivers/net/wireless/broadcom/b43/phy_n.c (+1/-1)
drivers/net/wireless/broadcom/brcm80211/brcmfmac/dmi.c (+32/-0)
drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c (+6/-4)
drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c (+4/-2)
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c (+1/-0)
drivers/net/wireless/intel/iwlwifi/iwl-csr.h (+10/-0)
drivers/net/wireless/intel/iwlwifi/mvm/debugfs-vif.c (+3/-0)
drivers/net/wireless/intel/iwlwifi/mvm/fw.c (+8/-1)
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c (+7/-1)
drivers/net/wireless/intel/iwlwifi/mvm/ops.c (+12/-1)
drivers/net/wireless/intel/iwlwifi/mvm/sta.c (+6/-0)
drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c (+29/-2)
drivers/net/wireless/intel/iwlwifi/pcie/drv.c (+1/-0)
drivers/net/wireless/intel/iwlwifi/pcie/trans.c (+29/-9)
drivers/net/wireless/intel/iwlwifi/pcie/tx.c (+5/-0)
drivers/net/wireless/intersil/orinoco/orinoco_usb.c (+7/-7)
drivers/net/wireless/intersil/p54/p54pci.c (+3/-1)
drivers/net/wireless/marvell/mwifiex/join.c (+2/-0)
drivers/net/wireless/marvell/mwifiex/main.c (+2/-0)
drivers/net/wireless/marvell/mwifiex/pcie.c (+17/-1)
drivers/net/wireless/marvell/mwifiex/pcie.h (+2/-0)
drivers/net/wireless/mediatek/mt76/dma.c (+12/-7)
drivers/net/wireless/mediatek/mt76/mt7603/main.c (+4/-2)
drivers/net/wireless/mediatek/mt76/mt7615/main.c (+4/-2)
drivers/net/wireless/mediatek/mt76/mt76x02_util.c (+4/-2)
drivers/net/wireless/mediatek/mt7601u/dma.c (+2/-3)
drivers/net/wireless/quantenna/qtnfmac/pcie/pcie.c (+3/-3)
drivers/net/wireless/realtek/rtw88/debug.c (+2/-0)
drivers/net/wireless/realtek/rtw88/rtw8723d.c (+2/-2)
drivers/net/wireless/realtek/rtw88/tx.c (+1/-1)
drivers/net/wireless/rsi/rsi_91x_hal.c (+2/-1)
drivers/net/wireless/rsi/rsi_91x_sdio.c (+1/-5)
drivers/net/wireless/rsi/rsi_91x_sdio_ops.c (+13/-39)
drivers/net/wireless/rsi/rsi_91x_usb.c (+15/-15)
drivers/net/wireless/rsi/rsi_sdio.h (+1/-7)
drivers/net/wireless/st/cw1200/main.c (+2/-0)
drivers/net/wireless/ti/wl12xx/main.c (+0/-3)
drivers/net/wireless/ti/wlcore/main.c (+1/-14)
drivers/net/wireless/ti/wlcore/wlcore.h (+0/-3)
drivers/net/xen-netback/common.h (+15/-0)
drivers/net/xen-netback/interface.c (+54/-9)
drivers/net/xen-netback/netback.c (+19/-2)
drivers/net/xen-netback/rx.c (+17/-5)
drivers/net/xen-netback/xenbus.c (+5/-1)
drivers/nfc/s3fwrn5/firmware.c (+3/-1)
drivers/nfc/s3fwrn5/i2c.c (+2/-2)
drivers/nvdimm/dimm_devs.c (+15/-3)
drivers/nvdimm/label.c (+12/-1)
drivers/nvme/host/core.c (+47/-6)
drivers/nvme/host/multipath.c (+1/-1)
drivers/nvme/host/nvme.h (+3/-0)
drivers/nvme/host/pci.c (+93/-40)
drivers/nvme/host/rdma.c (+27/-14)
drivers/nvme/host/tcp.c (+21/-15)
drivers/nvme/target/core.c (+2/-2)
drivers/nvme/target/rdma.c (+10/-0)
drivers/nvme/target/tcp.c (+2/-1)
drivers/nvme/target/trace.h (+7/-14)
drivers/nvmem/core.c (+4/-1)
drivers/of/address.c (+3/-1)
drivers/of/fdt.c (+10/-2)
drivers/of/of_reserved_mem.c (+11/-2)
drivers/opp/core.c (+4/-3)
drivers/pci/controller/dwc/pcie-qcom.c (+16/-1)
drivers/pci/controller/pci-xgene-msi.c (+3/-7)
drivers/pci/controller/pcie-iproc.c (+5/-5)
drivers/pci/controller/pcie-mediatek.c (+5/-2)
drivers/pci/pci-acpi.c (+12/-2)
drivers/pci/pci.c (+20/-7)
drivers/pci/quirks.c (+3/-0)
drivers/pci/setup-res.c (+6/-0)
drivers/pci/slot.c (+3/-3)
drivers/pci/syscall.c (+5/-5)
drivers/phy/marvell/phy-mvebu-a3700-comphy.c (+11/-3)
drivers/phy/marvell/phy-mvebu-cp110-comphy.c (+11/-3)
drivers/phy/motorola/phy-cpcap-usb.c (+13/-6)
drivers/phy/renesas/phy-rcar-gen3-usb2.c (+4/-2)
drivers/phy/rockchip/phy-rockchip-emmc.c (+5/-3)
drivers/phy/tegra/xusb.c (+1/-0)
drivers/pinctrl/aspeed/pinctrl-aspeed-g6.c (+1/-1)
drivers/pinctrl/aspeed/pinctrl-aspeed.c (+68/-5)
drivers/pinctrl/aspeed/pinmux-aspeed.h (+4/-3)
drivers/pinctrl/intel/pinctrl-baytrail.c (+60/-15)
drivers/pinctrl/intel/pinctrl-intel.c (+8/-0)
drivers/pinctrl/intel/pinctrl-merrifield.c (+8/-0)
drivers/pinctrl/pinctrl-amd.c (+3/-10)
drivers/pinctrl/pinctrl-falcon.c (+9/-5)
drivers/pinctrl/pinctrl-ingenic.c (+12/-12)
drivers/pinctrl/pinctrl-rockchip.c (+2/-0)
drivers/pinctrl/sunxi/pinctrl-sunxi.c (+4/-2)
drivers/platform/chrome/cros_ec_spi.c (+0/-1)
drivers/platform/mellanox/mlx-bootctl.c (+6/-0)
drivers/platform/mellanox/mlx-trio.c (+8/-0)
drivers/platform/mellanox/mlxbf_pka/mlxbf_pka_addrs.h (+171/-0)
drivers/platform/mellanox/mlxbf_pka/mlxbf_pka_config.h (+43/-0)
drivers/platform/mellanox/mlxbf_pka/mlxbf_pka_dev.c (+531/-0)
drivers/platform/mellanox/mlxbf_pka/mlxbf_pka_dev.h (+37/-0)
drivers/platform/mellanox/mlxbf_pka/mlxbf_pka_drv.c (+242/-0)
drivers/platform/mellanox/mlxbf_pka/mlxbf_pka_firmware.h (+1647/-0)
drivers/platform/olpc/olpc-ec.c (+8/-7)
drivers/platform/x86/acer-wmi.c (+141/-29)
drivers/platform/x86/dell-smbios-base.c (+1/-0)
drivers/platform/x86/hp-wmi.c (+10/-4)
drivers/platform/x86/i2c-multi-instantiate.c (+23/-8)
drivers/platform/x86/ideapad-laptop.c (+14/-1)
drivers/platform/x86/intel-hid.c (+3/-1)
drivers/platform/x86/intel-vbtn.c (+13/-1)
drivers/platform/x86/mlx-platform.c (+7/-20)
drivers/platform/x86/thinkpad_acpi.c (+10/-1)
drivers/platform/x86/toshiba_acpi.c (+1/-2)
drivers/platform/x86/touchscreen_dmi.c (+41/-0)
drivers/power/reset/at91-sama5d2_shdwc.c (+1/-1)
drivers/power/supply/axp288_charger.c (+17/-11)
drivers/power/supply/bq24190_charger.c (+15/-5)
drivers/power/supply/bq27xxx_battery.c (+4/-2)
drivers/power/supply/test_power.c (+6/-0)
drivers/ps3/ps3stor_lib.c (+1/-1)
drivers/pwm/pwm-lp3943.c (+1/-0)
drivers/pwm/pwm-rockchip.c (+0/-1)
drivers/pwm/pwm-zx.c (+1/-0)
drivers/regulator/axp20x-regulator.c (+4/-5)
drivers/regulator/bd718x7-regulator.c (+57/-0)
drivers/regulator/core.c (+58/-28)
drivers/regulator/pfuze100-regulator.c (+8/-5)
drivers/regulator/qcom-rpmh-regulator.c (+2/-2)
drivers/regulator/s5m8767.c (+11/-4)
drivers/regulator/ti-abb-regulator.c (+11/-1)
drivers/remoteproc/qcom_q6v5_adsp.c (+6/-7)
drivers/remoteproc/qcom_q6v5_mss.c (+4/-1)
drivers/rpmsg/qcom_glink_native.c (+3/-3)
drivers/rtc/Kconfig (+1/-0)
drivers/rtc/rtc-ep93xx.c (+3/-3)
drivers/rtc/rtc-pcf2127.c (+4/-8)
drivers/rtc/rtc-pl031.c (+4/-2)
drivers/rtc/rtc-rx8010.c (+17/-7)
drivers/rtc/rtc-sun6i.c (+5/-3)
drivers/s390/block/dasd.c (+9/-3)
drivers/s390/block/dasd_alias.c (+20/-2)
drivers/s390/cio/device.c (+2/-2)
drivers/s390/cio/vfio_ccw_ops.c (+3/-3)
drivers/s390/crypto/pkey_api.c (+16/-14)
drivers/s390/crypto/vfio_ap_drv.c (+1/-5)
drivers/s390/crypto/vfio_ap_ops.c (+63/-39)
drivers/s390/crypto/vfio_ap_private.h (+6/-6)
drivers/s390/net/qeth_core.h (+6/-3)
drivers/s390/net/qeth_core_main.c (+54/-28)
drivers/s390/net/qeth_l3_main.c (+1/-1)
drivers/s390/virtio/virtio_ccw.c (+2/-2)
drivers/scsi/be2iscsi/be_main.c (+2/-2)
drivers/scsi/bnx2fc/Kconfig (+1/-0)
drivers/scsi/bnx2i/Kconfig (+1/-0)
drivers/scsi/cxgbi/cxgb4i/Kconfig (+1/-0)
drivers/scsi/device_handler/scsi_dh_alua.c (+5/-4)
drivers/scsi/fnic/fnic_main.c (+1/-0)
drivers/scsi/fnic/vnic_dev.c (+5/-3)
drivers/scsi/hpsa.c (+3/-1)
drivers/scsi/ibmvscsi/ibmvfc.c (+3/-1)
drivers/scsi/ibmvscsi/ibmvscsi.c (+26/-10)
drivers/scsi/libfc/fc_exch.c (+14/-2)
drivers/scsi/libiscsi.c (+92/-90)
drivers/scsi/lpfc/lpfc_mem.c (+2/-4)
drivers/scsi/lpfc/lpfc_nportdisc.c (+1/-1)
drivers/scsi/lpfc/lpfc_sli.c (+8/-2)
drivers/scsi/megaraid/megaraid_sas_base.c (+11/-7)
drivers/scsi/mpt3sas/mpt3sas_base.c (+8/-1)
drivers/scsi/mpt3sas/mpt3sas_base.h (+92/-12)
drivers/scsi/mpt3sas/mpt3sas_ctl.c (+5/-3)
drivers/scsi/mpt3sas/mpt3sas_scsih.c (+1101/-137)
drivers/scsi/mpt3sas/mpt3sas_transport.c (+260/-52)
drivers/scsi/pm8001/pm8001_init.c (+2/-1)
drivers/scsi/qedi/qedi_main.c (+5/-3)
drivers/scsi/qla2xxx/qla_target.c (+7/-6)
drivers/scsi/qla2xxx/qla_tmpl.c (+5/-4)
drivers/scsi/qla2xxx/qla_tmpl.h (+1/-1)
drivers/scsi/scsi_lib.c (+86/-40)
drivers/scsi/scsi_scan.c (+4/-3)
drivers/scsi/scsi_transport_iscsi.c (+30/-9)
drivers/scsi/scsi_transport_spi.c (+19/-8)
drivers/scsi/scsi_transport_srp.c (+8/-1)
drivers/scsi/sd.c (+3/-1)
drivers/scsi/ufs/ufshcd-pci.c (+32/-2)
drivers/scsi/ufs/ufshcd.c (+16/-16)
drivers/slimbus/qcom-ngd-ctrl.c (+6/-0)
drivers/soc/amlogic/meson-canvas.c (+3/-1)
drivers/soc/aspeed/aspeed-lpc-snoop.c (+27/-3)
drivers/soc/atmel/soc.c (+13/-0)
drivers/soc/fsl/dpio/dpio-driver.c (+1/-4)
drivers/soc/mediatek/mtk-scpsys.c (+3/-2)
drivers/soc/qcom/qcom-geni-se.c (+15/-2)
drivers/soc/qcom/smp2p.c (+3/-2)
drivers/soc/renesas/rmobile-sysc.c (+1/-0)
drivers/soc/tegra/fuse/speedo-tegra210.c (+1/-1)
drivers/soc/ti/knav_dma.c (+11/-2)
drivers/soc/ti/knav_qmss_queue.c (+3/-1)
drivers/soundwire/cadence_master.c (+4/-4)
drivers/spi/atmel-quadspi.c (+13/-14)
drivers/spi/spi-atmel.c (+1/-1)
drivers/spi/spi-bcm-qspi.c (+12/-22)
drivers/spi/spi-bcm2835.c (+11/-29)
drivers/spi/spi-bcm2835aux.c (+7/-13)
drivers/spi/spi-bcm63xx-hsspi.c (+3/-1)
drivers/spi/spi-cadence.c (+4/-2)
drivers/spi/spi-davinci.c (+1/-1)
drivers/spi/spi-fsl-lpspi.c (+0/-3)
drivers/spi/spi-fsl-spi.c (+8/-3)
drivers/spi/spi-gpio.c (+2/-13)
drivers/spi/spi-img-spfi.c (+3/-1)
drivers/spi/spi-mem.c (+1/-0)
drivers/spi/spi-mt7621.c (+9/-2)
drivers/spi/spi-mxic.c (+2/-8)
drivers/spi/spi-mxs.c (+1/-0)
drivers/spi/spi-npcm-fiu.c (+4/-5)
drivers/spi/spi-nxp-fspi.c (+7/-0)
drivers/spi/spi-pic32.c (+1/-0)
drivers/spi/spi-pxa2xx-pci.c (+19/-8)
drivers/spi/spi-pxa2xx.c (+2/-3)
drivers/spi/spi-rb4xx.c (+1/-1)
drivers/spi/spi-s3c24xx-fiq.S (+3/-6)
drivers/spi/spi-sc18is602.c (+2/-11)
drivers/spi/spi-sh.c (+4/-9)
drivers/spi/spi-sprd.c (+2/-1)
drivers/spi/spi-st-ssc4.c (+3/-2)
drivers/spi/spi-stm32.c (+11/-13)
drivers/spi/spi-synquacer.c (+12/-7)
drivers/spi/spi-tegra114.c (+2/-0)
drivers/spi/spi-tegra20-sflash.c (+1/-0)
drivers/spi/spi-tegra20-slink.c (+2/-0)
drivers/spi/spi-ti-qspi.c (+1/-0)
drivers/spi/spi.c (+67/-10)
drivers/spmi/spmi-pmic-arb.c (+2/-3)
drivers/staging/comedi/drivers/addi_apci_1032.c (+3/-1)
drivers/staging/comedi/drivers/addi_apci_1500.c (+9/-9)
drivers/staging/comedi/drivers/adv_pci1710.c (+5/-5)
drivers/staging/comedi/drivers/cb_pcidas.c (+1/-0)
drivers/staging/comedi/drivers/das6402.c (+1/-1)
drivers/staging/comedi/drivers/das800.c (+1/-1)
drivers/staging/comedi/drivers/dmm32at.c (+1/-1)
drivers/staging/comedi/drivers/me4000.c (+1/-1)
drivers/staging/comedi/drivers/mf6x4.c (+2/-1)
drivers/staging/comedi/drivers/pcl711.c (+1/-1)
drivers/staging/comedi/drivers/pcl818.c (+1/-1)
drivers/staging/exfat/exfat_super.c (+1/-1)
drivers/staging/fieldbus/anybuss/arcx-anybus.c (+1/-1)
drivers/staging/fwserial/fwserial.c (+2/-0)
drivers/staging/gasket/gasket_interrupt.c (+10/-5)
drivers/staging/gdm724x/gdm_usb.c (+7/-3)
drivers/staging/greybus/audio_codec.c (+2/-0)
drivers/staging/ks7010/ks_wlan_net.c (+4/-2)
drivers/staging/media/imx/imx-media-csc-scaler.c (+0/-4)
drivers/staging/media/imx/imx-media-dev.c (+6/-1)
drivers/staging/most/sound/sound.c (+2/-0)
drivers/staging/mt7621-dma/Makefile (+1/-1)
drivers/staging/mt7621-dma/hsdma-mt7621.c (+4/-2)
drivers/staging/octeon/ethernet-mdio.c (+0/-6)
drivers/staging/octeon/ethernet-rx.c (+19/-15)
drivers/staging/octeon/ethernet-tx.c (+1/-1)
drivers/staging/octeon/ethernet.c (+9/-0)
drivers/staging/ralink-gdma/Kconfig (+1/-0)
drivers/staging/rtl8188eu/core/rtw_ap.c (+5/-0)
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c (+4/-2)
drivers/staging/rtl8188eu/os_dep/usb_intf.c (+1/-0)
drivers/staging/rtl8192e/rtl8192e/rtl_wx.c (+4/-3)
drivers/staging/rtl8192u/r8192U_wx.c (+4/-2)
drivers/staging/rtl8712/rtl871x_cmd.c (+4/-2)
drivers/staging/rtl8712/rtl871x_ioctl_linux.c (+1/-1)
drivers/staging/rtl8723bs/os_dep/sdio_intf.c (+1/-0)
drivers/staging/rtl8723bs/os_dep/wifi_regd.c (+1/-1)
drivers/staging/speakup/speakup_dectlk.c (+1/-1)
drivers/staging/speakup/spk_ttyio.c (+22/-3)
drivers/staging/vc04_services/bcm2835-audio/bcm2835-ctl.c (+3/-3)
drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c (+1/-1)
drivers/staging/vc04_services/bcm2835-audio/bcm2835.c (+3/-3)
drivers/target/iscsi/cxgbit/cxgbit_target.c (+1/-2)
drivers/target/iscsi/iscsi_target.c (+13/-4)
drivers/target/target_core_pr.c (+11/-4)
drivers/target/target_core_transport.c (+11/-4)
drivers/target/target_core_xcopy.c (+70/-49)
drivers/target/target_core_xcopy.h (+1/-0)
drivers/tee/optee/call.c (+5/-2)
drivers/thermal/cpu_cooling.c (+6/-3)
drivers/thunderbolt/icm.c (+7/-3)
drivers/thunderbolt/nhi.c (+15/-4)
drivers/thunderbolt/xdomain.c (+1/-0)
drivers/tty/serial/8250/8250_mtk.c (+1/-1)
drivers/tty/serial/8250/8250_omap.c (+0/-5)
drivers/tty/serial/amba-pl011.c (+7/-4)
drivers/tty/serial/fsl_lpuart.c (+26/-2)
drivers/tty/serial/imx.c (+11/-19)
drivers/tty/serial/mvebu-uart.c (+9/-1)
drivers/tty/serial/qcom_geni_serial.c (+1/-1)
drivers/tty/serial/serial_core.c (+4/-0)
drivers/tty/serial/serial_txx9.c (+3/-0)
drivers/tty/serial/sifive.c (+1/-0)
drivers/tty/tty_io.c (+6/-1)
drivers/tty/tty_jobctrl.c (+31/-13)
drivers/tty/vt/consolemap.c (+1/-1)
drivers/tty/vt/keyboard.c (+19/-20)
drivers/tty/vt/vt.c (+2/-22)
drivers/tty/vt/vt_ioctl.c (+17/-15)
drivers/uio/uio.c (+7/-5)
drivers/usb/cdns3/gadget.h (+1/-1)
drivers/usb/chipidea/ci_hdrc_imx.c (+7/-2)
drivers/usb/class/cdc-acm.c (+23/-7)
drivers/usb/class/cdc-acm.h (+1/-2)
drivers/usb/class/cdc-wdm.c (+13/-3)
drivers/usb/class/usblp.c (+42/-14)
drivers/usb/core/devio.c (+7/-7)
drivers/usb/core/quirks.c (+22/-3)
drivers/usb/dwc2/gadget.c (+1/-7)
drivers/usb/dwc2/hcd.c (+8/-7)
drivers/usb/dwc2/hcd_intr.c (+13/-1)
drivers/usb/dwc3/core.c (+14/-3)
drivers/usb/dwc3/core.h (+2/-0)
drivers/usb/dwc3/dwc3-pci.c (+6/-1)
drivers/usb/dwc3/dwc3-qcom.c (+11/-5)
drivers/usb/dwc3/ep0.c (+26/-2)
drivers/usb/dwc3/gadget.c (+87/-24)
drivers/usb/dwc3/gadget.h (+1/-0)
drivers/usb/dwc3/ulpi.c (+17/-5)
drivers/usb/gadget/Kconfig (+2/-0)
drivers/usb/gadget/composite.c (+8/-2)
drivers/usb/gadget/configfs.c (+13/-6)
drivers/usb/gadget/function/f_acm.c (+1/-1)
drivers/usb/gadget/function/f_fs.c (+8/-3)
drivers/usb/gadget/function/f_midi.c (+13/-3)
drivers/usb/gadget/function/f_printer.c (+1/-0)
drivers/usb/gadget/function/f_rndis.c (+3/-1)
drivers/usb/gadget/function/f_uac1.c (+1/-0)
drivers/usb/gadget/function/f_uac2.c (+56/-15)
drivers/usb/gadget/function/u_audio.c (+14/-3)
drivers/usb/gadget/function/u_ether.c (+5/-4)
drivers/usb/gadget/function/u_ether_configfs.h (+2/-3)
drivers/usb/gadget/legacy/acm_ms.c (+3/-1)
drivers/usb/gadget/legacy/ether.c (+3/-1)
drivers/usb/gadget/legacy/inode.c (+3/-0)
drivers/usb/gadget/udc/aspeed-vhub/epn.c (+4/-1)
drivers/usb/gadget/udc/bdc/Kconfig (+1/-1)
drivers/usb/gadget/udc/core.c (+10/-3)
drivers/usb/gadget/udc/dummy_hcd.c (+1/-1)
drivers/usb/gadget/udc/goku_udc.c (+1/-1)
drivers/usb/host/ehci-hcd.c (+12/-0)
drivers/usb/host/ehci-hub.c (+3/-0)
drivers/usb/host/ehci-omap.c (+1/-0)
drivers/usb/host/fsl-mph-dr-of.c (+6/-3)
drivers/usb/host/max3421-hcd.c (+2/-1)
drivers/usb/host/ohci-hcd.c (+1/-1)
drivers/usb/host/oxu210hp-hcd.c (+3/-1)
drivers/usb/host/xhci-histb.c (+1/-1)
drivers/usb/host/xhci-hub.c (+4/-0)
drivers/usb/host/xhci-mtk-sch.c (+93/-37)
drivers/usb/host/xhci-mtk.c (+2/-0)
drivers/usb/host/xhci-mtk.h (+15/-0)
drivers/usb/host/xhci-mvebu.c (+42/-0)
drivers/usb/host/xhci-mvebu.h (+6/-0)
drivers/usb/host/xhci-pci.c (+27/-11)
drivers/usb/host/xhci-plat.c (+24/-2)
drivers/usb/host/xhci-plat.h (+1/-0)
drivers/usb/host/xhci-ring.c (+24/-12)
drivers/usb/host/xhci-tegra.c (+7/-0)
drivers/usb/host/xhci.c (+66/-51)
drivers/usb/host/xhci.h (+7/-1)
drivers/usb/misc/adutux.c (+1/-0)
drivers/usb/misc/sisusbvga/Kconfig (+1/-1)
drivers/usb/misc/yurex.c (+3/-0)
drivers/usb/mtu3/mtu3_debugfs.c (+1/-1)
drivers/usb/mtu3/mtu3_gadget.c (+1/-0)
drivers/usb/musb/musb_core.c (+17/-14)
drivers/usb/renesas_usbhs/fifo.c (+1/-0)
drivers/usb/renesas_usbhs/pipe.c (+2/-0)
drivers/usb/serial/ch341.c (+4/-2)
drivers/usb/serial/cp210x.c (+5/-0)
drivers/usb/serial/cyberjack.c (+6/-1)
drivers/usb/serial/digi_acceleport.c (+13/-32)
drivers/usb/serial/ftdi_sio.c (+3/-2)
drivers/usb/serial/io_edgeport.c (+16/-10)
drivers/usb/serial/iuu_phoenix.c (+15/-5)
drivers/usb/serial/keyspan_pda.c (+34/-31)
drivers/usb/serial/kl5kusb105.c (+4/-6)
drivers/usb/serial/mos7720.c (+5/-1)
drivers/usb/serial/mos7840.c (+3/-1)
drivers/usb/serial/option.c (+48/-7)
drivers/usb/storage/uas.c (+3/-0)
drivers/usb/storage/unusual_uas.h (+12/-2)
drivers/usb/storage/usb.c (+3/-0)
drivers/usb/typec/altmodes/Kconfig (+1/-1)
drivers/usb/typec/tcpm/tcpm.c (+4/-4)
drivers/usb/usbip/stub_dev.c (+35/-7)
drivers/usb/usbip/vhci_hcd.c (+2/-0)
drivers/usb/usbip/vhci_sysfs.c (+34/-5)
drivers/usb/usbip/vudc_sysfs.c (+42/-7)
drivers/vfio/pci/vfio_pci.c (+4/-5)
drivers/vfio/pci/vfio_pci_nvlink2.c (+5/-2)
drivers/vfio/platform/vfio_platform_common.c (+1/-2)
drivers/vfio/vfio_iommu_type1.c (+43/-25)
drivers/vhost/net.c (+3/-3)
drivers/vhost/scsi.c (+15/-27)
drivers/vhost/vringh.c (+5/-4)
drivers/video/fbdev/Kconfig (+1/-1)
drivers/video/fbdev/atmel_lcdfb.c (+1/-1)
drivers/video/fbdev/hyperv_fb.c (+4/-1)
drivers/video/fbdev/pvr2fb.c (+2/-0)
drivers/video/fbdev/udlfb.c (+1/-0)
drivers/virt/vboxguest/vboxguest_utils.c (+12/-6)
drivers/virtio/virtio_ring.c (+4/-4)
drivers/w1/masters/mxc_w1.c (+7/-7)
drivers/watchdog/Kconfig (+15/-1)
drivers/watchdog/Makefile (+1/-0)
drivers/watchdog/ahc1ec0-wdt.c (+261/-0)
drivers/watchdog/mei_wdt.c (+1/-0)
drivers/watchdog/qcom-wdt.c (+2/-13)
drivers/watchdog/rdc321x_wdt.c (+2/-3)
drivers/watchdog/sprd_wdt.c (+15/-19)
drivers/watchdog/watchdog_core.c (+13/-9)
drivers/xen/events/events_2l.c (+19/-12)
drivers/xen/events/events_base.c (+490/-68)
drivers/xen/events/events_fifo.c (+38/-50)
drivers/xen/events/events_internal.h (+31/-11)
drivers/xen/evtchn.c (+3/-4)
drivers/xen/gntdev.c (+32/-22)
drivers/xen/platform-pci.c (+0/-1)
drivers/xen/privcmd.c (+19/-6)
drivers/xen/pvcalls-back.c (+46/-30)
drivers/xen/xen-pciback/pci_stub.c (+7/-7)
drivers/xen/xen-pciback/pciback.h (+10/-2)
drivers/xen/xen-pciback/pciback_ops.c (+38/-10)
drivers/xen/xen-pciback/xenbus.c (+2/-2)
drivers/xen/xen-scsiback.c (+15/-12)
drivers/xen/xenbus/xenbus.h (+2/-0)
drivers/xen/xenbus/xenbus_client.c (+7/-1)
drivers/xen/xenbus/xenbus_comms.c (+0/-8)
drivers/xen/xenbus/xenbus_probe.c (+98/-13)
drivers/xen/xenbus/xenbus_probe_backend.c (+7/-0)
drivers/xen/xenbus/xenbus_xs.c (+22/-12)
fs/9p/vfs_file.c (+2/-2)
fs/affs/namei.c (+3/-1)
fs/afs/main.c (+3/-3)
fs/afs/super.c (+3/-0)
fs/afs/yfsclient.c (+1/-0)
fs/bfs/inode.c (+1/-1)
fs/binfmt_misc.c (+14/-15)
fs/btrfs/backref.c (+101/-56)
fs/btrfs/block-group.c (+23/-9)
fs/btrfs/ctree.c (+11/-2)
fs/btrfs/ctree.h (+5/-0)
fs/btrfs/delayed-inode.c (+2/-3)
fs/btrfs/dev-replace.c (+30/-3)
fs/btrfs/extent-tree.c (+18/-9)
fs/btrfs/extent_io.c (+1/-3)
fs/btrfs/file.c (+4/-1)
fs/btrfs/free-space-cache.c (+5/-1)
fs/btrfs/free-space-tree.c (+9/-1)
fs/btrfs/ioctl.c (+63/-7)
fs/btrfs/qgroup.c (+11/-4)
fs/btrfs/raid56.c (+25/-33)
fs/btrfs/reada.c (+47/-0)
fs/btrfs/ref-verify.c (+1/-0)
fs/btrfs/relocation.c (+4/-4)
fs/btrfs/send.c (+206/-59)
fs/btrfs/super.c (+8/-0)
fs/btrfs/transaction.c (+6/-5)
fs/btrfs/tree-checker.c (+40/-5)
fs/btrfs/tree-log.c (+8/-0)
fs/btrfs/volumes.c (+31/-29)
fs/btrfs/volumes.h (+1/-0)
fs/btrfs/xattr.c (+27/-4)
fs/buffer.c (+0/-16)
fs/cachefiles/rdwr.c (+2/-1)
fs/ceph/addr.c (+1/-1)
fs/ceph/caps.c (+9/-2)
fs/cifs/cifs_unicode.c (+7/-1)
fs/cifs/cifsacl.c (+1/-0)
fs/cifs/cifsfs.c (+1/-1)
fs/cifs/connect.c (+2/-0)
fs/cifs/dir.c (+20/-2)
fs/cifs/inode.c (+9/-4)
fs/cifs/smb2ops.c (+75/-16)
fs/cifs/smb2pdu.c (+6/-3)
fs/cifs/smb2pdu.h (+12/-4)
fs/cifs/transport.c (+19/-7)
fs/configfs/file.c (+2/-4)
fs/coredump.c (+2/-1)
fs/crypto/fscrypt_private.h (+4/-1)
fs/crypto/hooks.c (+5/-5)
fs/crypto/keysetup.c (+2/-0)
fs/crypto/policy.c (+4/-2)
fs/dax.c (+5/-5)
fs/debugfs/inode.c (+4/-1)
fs/efivarfs/inode.c (+2/-0)
fs/erofs/data.c (+7/-19)
fs/erofs/inode.c (+11/-10)
fs/erofs/super.c (+2/-2)
fs/erofs/xattr.c (+9/-3)
fs/erofs/zmap.c (+9/-1)
fs/exec.c (+21/-8)
fs/ext4/ext4.h (+2/-1)
fs/ext4/file.c (+1/-1)
fs/ext4/inline.c (+1/-0)
fs/ext4/inode.c (+21/-11)
fs/ext4/ioctl.c (+3/-0)
fs/ext4/mballoc.c (+1/-0)
fs/ext4/namei.c (+15/-11)
fs/ext4/resize.c (+3/-1)
fs/ext4/super.c (+14/-10)
fs/f2fs/checkpoint.c (+9/-3)
fs/f2fs/data.c (+1/-1)
fs/f2fs/debug.c (+6/-5)
fs/f2fs/dir.c (+3/-5)
fs/f2fs/f2fs.h (+11/-3)
fs/f2fs/file.c (+6/-1)
fs/f2fs/inline.c (+4/-0)
fs/f2fs/namei.c (+8/-0)
fs/f2fs/node.c (+19/-12)
fs/f2fs/node.h (+2/-2)
fs/f2fs/segment.c (+9/-3)
fs/f2fs/segment.h (+2/-2)
fs/f2fs/shrinker.c (+1/-3)
fs/f2fs/super.c (+4/-5)
fs/fcntl.c (+6/-4)
fs/fs-writeback.c (+16/-20)
fs/fuse/acl.c (+6/-0)
fs/fuse/dev.c (+18/-10)
fs/fuse/dir.c (+32/-5)
fs/fuse/file.c (+11/-8)
fs/fuse/fuse_i.h (+12/-0)
fs/fuse/inode.c (+2/-2)
fs/fuse/readdir.c (+2/-2)
fs/fuse/xattr.c (+9/-0)
fs/gfs2/bmap.c (+3/-3)
fs/gfs2/glock.c (+2/-1)
fs/gfs2/incore.h (+1/-0)
fs/gfs2/lock_dlm.c (+2/-6)
fs/gfs2/ops_fstype.c (+16/-24)
fs/gfs2/rgrp.c (+13/-6)
fs/gfs2/super.c (+2/-0)
fs/gfs2/sys.c (+4/-1)
fs/hugetlbfs/inode.c (+2/-1)
fs/io_uring.c (+3/-2)
fs/isofs/dir.c (+1/-0)
fs/isofs/namei.c (+1/-0)
fs/jbd2/checkpoint.c (+2/-0)
fs/jbd2/transaction.c (+3/-1)
fs/jffs2/jffs2_fs_sb.h (+1/-0)
fs/jffs2/readinode.c (+16/-0)
fs/jffs2/summary.c (+3/-0)
fs/jffs2/super.c (+26/-6)
fs/jfs/jfs_dmap.c (+1/-1)
fs/jfs/jfs_dmap.h (+1/-1)
fs/jfs/jfs_filsys.h (+1/-0)
fs/jfs/jfs_mount.c (+10/-0)
fs/libfs.c (+4/-2)
fs/lockd/host.c (+11/-9)
fs/namespace.c (+6/-3)
fs/nfs/dir.c (+25/-15)
fs/nfs/inode.c (+1/-1)
fs/nfs/internal.h (+7/-5)
fs/nfs/namespace.c (+8/-4)
fs/nfs/nfs4_fs.h (+8/-0)
fs/nfs/nfs4file.c (+2/-1)
fs/nfs/nfs4proc.c (+73/-57)
fs/nfs/nfs4super.c (+1/-1)
fs/nfs/nfs4trace.h (+1/-0)
fs/nfs/nfs4xdr.c (+7/-3)
fs/nfs/pnfs.c (+70/-30)
fs/nfs/pnfs.h (+8/-5)
fs/nfs_common/grace.c (+5/-1)
fs/nfsd/nfs3xdr.c (+6/-1)
fs/nfsd/nfsctl.c (+7/-7)
fs/nfsd/nfsproc.c (+16/-0)
fs/nfsd/nfssvc.c (+1/-2)
fs/ntfs/inode.c (+6/-0)
fs/ocfs2/cluster/heartbeat.c (+7/-1)
fs/ocfs2/super.c (+1/-0)
fs/overlayfs/copy_up.c (+8/-7)
fs/overlayfs/dir.c (+1/-1)
fs/overlayfs/file.c (+3/-8)
fs/overlayfs/inode.c (+2/-0)
fs/overlayfs/super.c (+8/-5)
fs/pnode.h (+2/-2)
fs/proc/base.c (+5/-5)
fs/proc/generic.c (+37/-18)
fs/proc/internal.h (+7/-0)
fs/proc/proc_net.c (+0/-16)
fs/proc/self.c (+7/-0)
fs/proc/task_mmu.c (+6/-2)
fs/pstore/platform.c (+2/-2)
fs/quota/quota_tree.c (+4/-4)
fs/quota/quota_v2.c (+24/-0)
fs/reiserfs/stree.c (+6/-0)
fs/shiftfs.c (+23/-8)
fs/squashfs/export.c (+33/-8)
fs/squashfs/id.c (+32/-8)
fs/squashfs/squashfs_fs_sb.h (+1/-0)
fs/squashfs/super.c (+3/-3)
fs/squashfs/xattr.h (+9/-1)
fs/squashfs/xattr_id.c (+57/-9)
fs/super.c (+4/-29)
fs/sysfs/file.c (+55/-0)
fs/ubifs/auth.c (+4/-2)
fs/ubifs/debug.c (+1/-0)
fs/ubifs/dir.c (+13/-4)
fs/ubifs/io.c (+11/-2)
fs/ubifs/journal.c (+4/-2)
fs/ubifs/orphan.c (+2/-0)
fs/ubifs/super.c (+35/-13)
fs/ubifs/tnc.c (+3/-0)
fs/ubifs/xattr.c (+2/-0)
fs/udf/inode.c (+6/-3)
fs/udf/super.c (+17/-11)
fs/xattr.c (+11/-6)
fs/xfs/libxfs/xfs_alloc.c (+1/-0)
fs/xfs/libxfs/xfs_bmap.c (+12/-7)
fs/xfs/libxfs/xfs_bmap.h (+1/-1)
fs/xfs/libxfs/xfs_rmap.c (+1/-1)
fs/xfs/libxfs/xfs_trans_inode.c (+2/-2)
fs/xfs/scrub/bmap.c (+6/-4)
fs/xfs/scrub/btree.c (+27/-18)
fs/xfs/scrub/inode.c (+1/-2)
fs/xfs/scrub/refcount.c (+3/-5)
fs/xfs/xfs_ioctl.c (+25/-1)
fs/xfs/xfs_iops.c (+11/-1)
fs/xfs/xfs_mount.c (+8/-3)
fs/xfs/xfs_pnfs.c (+1/-1)
fs/xfs/xfs_rtalloc.c (+8/-2)
include/acpi/acexcep.h (+5/-5)
include/acpi/acpi_bus.h (+0/-5)
include/asm-generic/bitops/atomic.h (+3/-3)
include/asm-generic/pgtable.h (+11/-2)
include/asm-generic/sections.h (+3/-0)
include/asm-generic/vmlinux.lds.h (+21/-3)
include/crypto/hash.h (+4/-4)
include/drm/intel-gtt.h (+1/-4)
include/dt-bindings/mfd/ahc1ec0-dt.h (+25/-0)
include/linux/acpi.h (+7/-0)
include/linux/arm-smccc.h (+2/-0)
include/linux/bpf.h (+3/-0)
include/linux/build_bug.h (+5/-0)
include/linux/can/skb.h (+14/-14)
include/linux/capability.h (+1/-1)
include/linux/compiler-clang.h (+0/-6)
include/linux/compiler-gcc.h (+5/-20)
include/linux/compiler.h (+69/-2)
include/linux/compiler_types.h (+4/-4)
include/linux/crypto.h (+6/-3)
include/linux/device-mapper.h (+5/-0)
include/linux/dm-bufio.h (+1/-0)
include/linux/eeprom_93xx46.h (+2/-0)
include/linux/elfcore.h (+22/-0)
include/linux/filter.h (+1/-1)
include/linux/fs.h (+0/-1)
include/linux/fscrypt.h (+34/-0)
include/linux/hil_mlc.h (+1/-1)
include/linux/hugetlb.h (+2/-0)
include/linux/icmpv6.h (+46/-2)
include/linux/if_team.h (+1/-4)
include/linux/intel-iommu.h (+3/-1)
include/linux/ipv6.h (+0/-1)
include/linux/irqdomain.h (+10/-2)
include/linux/kdev_t.h (+11/-11)
include/linux/kexec.h (+5/-0)
include/linux/key.h (+1/-0)
include/linux/kprobes.h (+1/-1)
include/linux/kthread.h (+3/-0)
include/linux/linkage.h (+237/-8)
include/linux/mfd/ahc1ec0.h (+276/-0)
include/linux/mlx5/driver.h (+6/-0)
include/linux/mlx5/mlx5_ifc.h (+11/-2)
include/linux/mm.h (+14/-3)
include/linux/msi.h (+6/-0)
include/linux/mtd/pfow.h (+1/-1)
include/linux/netdevice.h (+21/-0)
include/linux/netfilter.h (+1/-1)
include/linux/netfilter/nfnetlink.h (+8/-1)
include/linux/netfilter/x_tables.h (+1/-1)
include/linux/netfilter_ipv4.h (+1/-1)
include/linux/netfilter_ipv6.h (+5/-5)
include/linux/netpoll.h (+1/-9)
include/linux/of.h (+1/-0)
include/linux/pm.h (+1/-1)
include/linux/pm_runtime.h (+23/-4)
include/linux/prandom.h (+34/-2)
include/linux/prefetch.h (+8/-0)
include/linux/proc_fs.h (+7/-1)
include/linux/qcom-geni-se.h (+3/-0)
include/linux/rcupdate.h (+2/-0)
include/linux/rmap.h (+2/-1)
include/linux/rwsem.h (+3/-0)
include/linux/sched/mm.h (+2/-1)
include/linux/sched/signal.h (+6/-5)
include/linux/security.h (+1/-1)
include/linux/seq_buf.h (+1/-1)
include/linux/skbuff.h (+8/-2)
include/linux/spi/spi.h (+19/-0)
include/linux/stop_machine.h (+6/-5)
include/linux/sunrpc/xdr.h (+1/-2)
include/linux/sunrpc/xprt.h (+1/-0)
include/linux/swap.h (+1/-0)
include/linux/swiotlb.h (+1/-0)
include/linux/sysfs.h (+15/-0)
include/linux/time64.h (+4/-0)
include/linux/trace_seq.h (+2/-2)
include/linux/tty.h (+4/-0)
include/linux/uio.h (+7/-1)
include/linux/usb/pd.h (+1/-0)
include/linux/usb_usual.h (+2/-0)
include/linux/virtio_net.h (+6/-1)
include/linux/zsmalloc.h (+1/-2)
include/media/rc-map.h (+7/-0)
include/media/v4l2-mediabus.h (+2/-0)
include/net/act_api.h (+4/-0)
include/net/bond_alb.h (+4/-0)
include/net/bonding.h (+28/-9)
include/net/flow_offload.h (+4/-0)
include/net/icmp.h (+10/-0)
include/net/inet_connection_sock.h (+3/-0)
include/net/inet_ecn.h (+1/-1)
include/net/ip_tunnels.h (+4/-3)
include/net/neighbour.h (+1/-0)
include/net/netfilter/nf_conntrack.h (+12/-0)
include/net/netfilter/nf_tables.h (+12/-0)
include/net/netfilter/nf_tables_offload.h (+4/-0)
include/net/red.h (+3/-1)
include/net/sch_generic.h (+2/-1)
include/net/tcp.h (+9/-3)
include/net/tls.h (+57/-1)
include/net/xfrm.h (+1/-0)
include/scsi/libiscsi.h (+3/-0)
include/sound/intel-nhlt.h (+5/-0)
include/target/target_core_backend.h (+1/-0)
include/trace/events/btrfs.h (+6/-4)
include/trace/events/sunrpc.h (+4/-4)
include/trace/events/writeback.h (+4/-5)
include/uapi/linux/android/binder.h (+1/-0)
include/uapi/linux/bpf.h (+2/-2)
include/uapi/linux/btrfs_tree.h (+14/-0)
include/uapi/linux/const.h (+5/-0)
include/uapi/linux/ethtool.h (+1/-1)
include/uapi/linux/fscrypt.h (+2/-3)
include/uapi/linux/icmpv6.h (+1/-0)
include/uapi/linux/if_alg.h (+16/-0)
include/uapi/linux/kernel.h (+1/-8)
include/uapi/linux/lightnvm.h (+1/-1)
include/uapi/linux/mroute6.h (+1/-1)
include/uapi/linux/netfilter/nfnetlink_cthelper.h (+1/-1)
include/uapi/linux/netfilter/x_tables.h (+1/-1)
include/uapi/linux/netlink.h (+1/-1)
include/uapi/linux/nfs4.h (+3/-0)
include/uapi/linux/pkt_cls.h (+2/-0)
include/uapi/linux/ptrace.h (+2/-1)
include/uapi/linux/sysctl.h (+1/-1)
include/uapi/linux/vfio.h (+15/-0)
include/uapi/linux/videodev2.h (+8/-9)
include/uapi/linux/wireless.h (+5/-1)
include/uapi/sound/skl-tplg-interface.h (+2/-0)
include/xen/events.h (+25/-4)
include/xen/grant_table.h (+1/-0)
include/xen/xenbus.h (+14/-3)
init/Kconfig (+2/-1)
init/init_task.c (+3/-2)
init/initramfs.c (+1/-1)
kernel/Makefile (+0/-1)
kernel/bpf/Makefile (+5/-1)
kernel/bpf/bpf_lru_list.c (+4/-3)
kernel/bpf/cgroup.c (+9/-3)
kernel/bpf/core.c (+1/-1)
kernel/bpf/hashtab.c (+28/-2)
kernel/bpf/helpers.c (+1/-1)
kernel/bpf/stackmap.c (+2/-0)
kernel/bpf/verifier.c (+42/-29)
kernel/cgroup/cgroup-v1.c (+2/-0)
kernel/cgroup/cgroup.c (+3/-1)
kernel/cgroup/cpuset.c (+28/-5)
kernel/cpu.c (+5/-1)
kernel/debug/debug_core.c (+14/-8)
kernel/debug/kdb/kdb_private.h (+1/-1)
kernel/dma/swiotlb.c (+5/-1)
kernel/events/core.c (+31/-33)
kernel/events/internal.h (+1/-1)
kernel/exit.c (+4/-1)
kernel/fail_function.c (+3/-2)
kernel/fork.c (+8/-8)
kernel/futex.c (+116/-128)
kernel/irq/Kconfig (+1/-0)
kernel/irq/irqdomain.c (+17/-7)
kernel/irq/msi.c (+20/-24)
kernel/kcmp.c (+15/-15)
kernel/kexec_core.c (+0/-2)
kernel/kexec_file.c (+5/-0)
kernel/kprobes.c (+28/-8)
kernel/kthread.c (+28/-2)
kernel/locking/rtmutex.c (+1/-2)
kernel/locking/rtmutex_common.h (+1/-2)
kernel/locking/rwsem.c (+40/-0)
kernel/module.c (+23/-4)
kernel/power/swap.c (+1/-1)
kernel/printk/printk_safe.c (+12/-4)
kernel/ptrace.c (+5/-11)
kernel/rcu/tree.c (+8/-2)
kernel/rcu/tree_plugin.h (+5/-0)
kernel/reboot.c (+16/-14)
kernel/sched/core.c (+4/-10)
kernel/sched/deadline.c (+3/-2)
kernel/sched/fair.c (+31/-10)
kernel/sched/idle.c (+1/-0)
kernel/sched/membarrier.c (+21/-4)
kernel/sched/sched.h (+19/-24)
kernel/seccomp.c (+35/-10)
kernel/signal.c (+10/-9)
kernel/smpboot.c (+1/-0)
kernel/sysctl.c (+4/-4)
kernel/time/hrtimer.c (+39/-21)
kernel/time/itimer.c (+0/-4)
kernel/time/tick-common.c (+2/-0)
kernel/time/tick-sched.c (+0/-7)
kernel/time/timer.c (+0/-7)
kernel/trace/Kconfig (+1/-1)
kernel/trace/bpf_trace.c (+5/-3)
kernel/trace/fgraph.c (+0/-2)
kernel/trace/ftrace.c (+21/-1)
kernel/trace/ring_buffer.c (+67/-20)
kernel/trace/trace.c (+12/-9)
kernel/trace/trace.h (+23/-3)
kernel/trace/trace_events.c (+2/-1)
kernel/trace/trace_hwlat.c (+1/-1)
kernel/trace/trace_kprobe.c (+7/-5)
kernel/trace/trace_selftest.c (+7/-2)
kernel/tracepoint.c (+64/-16)
kernel/workqueue.c (+13/-9)
lib/crc32test.c (+0/-4)
lib/decompress_unlz4.c (+8/-0)
lib/fonts/font_10x18.c (+1/-1)
lib/fonts/font_6x10.c (+1/-1)
lib/fonts/font_6x11.c (+1/-1)
lib/fonts/font_7x14.c (+1/-1)
lib/fonts/font_8x16.c (+1/-1)
lib/fonts/font_8x8.c (+1/-1)
lib/fonts/font_acorn_8x8.c (+1/-1)
lib/fonts/font_mini_4x6.c (+1/-1)
lib/fonts/font_pearl_8x8.c (+1/-1)
lib/fonts/font_sun12x22.c (+1/-1)
lib/fonts/font_sun8x16.c (+1/-1)
lib/fonts/font_ter16x32.c (+1/-1)
lib/genalloc.c (+13/-12)
lib/iov_iter.c (+14/-10)
lib/logic_pio.c (+3/-0)
lib/raid6/Makefile (+1/-1)
lib/random32.c (+283/-179)
lib/scatterlist.c (+1/-1)
lib/syscall.c (+9/-2)
mm/Kconfig (+0/-13)
mm/compaction.c (+14/-16)
mm/huge_memory.c (+27/-19)
mm/hugetlb.c (+63/-19)
mm/kasan/init.c (+13/-10)
mm/list_lru.c (+5/-5)
mm/madvise.c (+18/-0)
mm/memblock.c (+6/-43)
mm/memcontrol.c (+7/-2)
mm/memory.c (+40/-33)
mm/mempolicy.c (+3/-3)
mm/page_alloc.c (+33/-10)
mm/page_idle.c (+2/-5)
mm/page_io.c (+0/-5)
mm/slub.c (+1/-1)
mm/swapfile.c (+16/-1)
mm/zsmalloc.c (+11/-52)
net/8021q/vlan.c (+2/-1)
net/8021q/vlan_dev.c (+2/-3)
net/9p/trans_fd.c (+1/-1)
net/batman-adv/log.c (+1/-0)
net/bluetooth/a2mp.c (+2/-1)
net/bluetooth/amp.c (+3/-0)
net/bluetooth/hci_core.c (+4/-2)
net/bluetooth/hci_event.c (+10/-7)
net/bridge/br.c (+4/-1)
net/bridge/br_device.c (+7/-0)
net/bridge/br_multicast.c (+25/-9)
net/bridge/br_netfilter_hooks.c (+5/-2)
net/bridge/br_private.h (+11/-4)
net/bridge/br_sysfs_if.c (+6/-3)
net/bridge/br_vlan.c (+3/-1)
net/can/af_can.c (+33/-12)
net/can/j1939/socket.c (+6/-0)
net/can/proc.c (+4/-2)
net/ceph/messenger.c (+5/-0)
net/core/datagram.c (+10/-2)
net/core/dev.c (+113/-6)
net/core/dev_ioctl.c (+7/-13)
net/core/devlink.c (+11/-2)
net/core/filter.c (+11/-4)
net/core/flow_dissector.c (+9/-4)
net/core/gen_estimator.c (+7/-4)
net/core/lwt_bpf.c (+4/-4)
net/core/neighbour.c (+6/-3)
net/core/net-sysfs.c (+53/-12)
net/core/netpoll.c (+47/-13)
net/core/netprio_cgroup.c (+2/-0)
net/core/pktgen.c (+1/-1)
net/core/rtnetlink.c (+1/-1)
net/core/skbuff.c (+35/-5)
net/core/skmsg.c (+75/-19)
net/core/sock.c (+0/-1)
net/core/sock_reuseport.c (+1/-1)
net/dcb/dcbnl.c (+2/-0)
net/dsa/Kconfig (+1/-0)
net/dsa/dsa.c (+1/-1)
net/dsa/dsa2.c (+5/-2)
net/dsa/dsa_priv.h (+3/-0)
net/dsa/slave.c (+11/-4)
net/ipv4/arp.c (+6/-0)
net/ipv4/cipso_ipv4.c (+1/-10)
net/ipv4/esp4.c (+1/-6)
net/ipv4/fib_frontend.c (+3/-3)
net/ipv4/gre_demux.c (+1/-1)
net/ipv4/icmp.c (+34/-0)
net/ipv4/inet_connection_sock.c (+1/-0)
net/ipv4/inet_diag.c (+3/-1)
net/ipv4/ip_output.c (+1/-1)
net/ipv4/ip_tunnel.c (+12/-18)
net/ipv4/netfilter.c (+5/-3)
net/ipv4/netfilter/ipt_rpfilter.c (+1/-1)
net/ipv4/netfilter/iptable_mangle.c (+1/-1)
net/ipv4/netfilter/nf_reject_ipv4.c (+1/-1)
net/ipv4/nexthop.c (+10/-4)
net/ipv4/route.c (+4/-3)
net/ipv4/syncookies.c (+7/-2)
net/ipv4/tcp.c (+18/-8)
net/ipv4/tcp_bbr.c (+1/-1)
net/ipv4/tcp_bpf.c (+11/-7)
net/ipv4/tcp_cong.c (+5/-0)
net/ipv4/tcp_input.c (+12/-6)
net/ipv4/tcp_ipv4.c (+13/-12)
net/ipv4/tcp_output.c (+9/-3)
net/ipv4/tcp_recovery.c (+3/-2)
net/ipv4/tcp_timer.c (+25/-7)
net/ipv4/udp.c (+3/-2)
net/ipv4/udp_offload.c (+2/-2)
net/ipv6/addrconf.c (+8/-3)
net/ipv6/addrlabel.c (+17/-9)
net/ipv6/ah6.c (+2/-1)
net/ipv6/calipso.c (+5/-9)
net/ipv6/esp6.c (+1/-6)
net/ipv6/icmp.c (+17/-10)
net/ipv6/ip6_fib.c (+2/-3)
net/ipv6/ip6_gre.c (+13/-3)
net/ipv6/ip6_icmp.c (+41/-5)
net/ipv6/ip6_output.c (+40/-1)
net/ipv6/ndisc.c (+7/-0)
net/ipv6/netfilter.c (+3/-3)
net/ipv6/netfilter/ip6table_mangle.c (+1/-1)
net/ipv6/reassembly.c (+32/-1)
net/ipv6/sit.c (+4/-3)
net/ipv6/syncookies.c (+8/-2)
net/iucv/af_iucv.c (+4/-4)
net/key/af_key.c (+3/-3)
net/lapb/lapb_out.c (+2/-1)
net/mac80211/driver-ops.c (+4/-1)
net/mac80211/ieee80211_i.h (+1/-0)
net/mac80211/iface.c (+6/-0)
net/mac80211/mesh_hwmp.c (+1/-1)
net/mac80211/mesh_pathtbl.c (+1/-3)
net/mac80211/rate.c (+2/-1)
net/mac80211/rc80211_minstrel.c (+5/-22)
net/mac80211/rc80211_minstrel.h (+0/-1)
net/mac80211/rx.c (+2/-0)
net/mac80211/spectmgmt.c (+7/-3)
net/mac80211/sta_info.c (+22/-10)
net/mac80211/tx.c (+26/-15)
net/mac80211/vht.c (+10/-4)
net/mpls/mpls_gso.c (+3/-0)
net/ncsi/ncsi-manage.c (+0/-5)
net/ncsi/ncsi-netlink.c (+3/-19)
net/ncsi/ncsi-netlink.h (+0/-3)
net/ncsi/ncsi-rsp.c (+1/-1)
net/netfilter/ipset/ip_set_core.c (+3/-3)
net/netfilter/ipset/ip_set_hash_gen.h (+18/-24)
net/netfilter/ipvs/ip_vs_core.c (+2/-2)
net/netfilter/nf_conntrack_core.c (+2/-13)
net/netfilter/nf_conntrack_standalone.c (+3/-0)
net/netfilter/nf_flow_table_core.c (+7/-2)
net/netfilter/nf_flow_table_offload.c (+74/-0)
net/netfilter/nf_nat_core.c (+1/-0)
net/netfilter/nf_nat_proto.c (+23/-6)
net/netfilter/nf_synproxy_core.c (+1/-1)
net/netfilter/nf_tables_api.c (+73/-19)
net/netfilter/nf_tables_offload.c (+19/-2)
net/netfilter/nfnetlink.c (+18/-4)
net/netfilter/nft_chain_route.c (+2/-2)
net/netfilter/nft_compat.c (+23/-4)
net/netfilter/nft_ct.c (+0/-2)
net/netfilter/nft_dynset.c (+11/-7)
net/netfilter/nft_payload.c (+4/-0)
net/netfilter/utils.c (+2/-2)
net/netfilter/x_tables.c (+5/-3)
net/netfilter/xt_RATEEST.c (+3/-0)
net/netfilter/xt_recent.c (+10/-2)
net/netlabel/netlabel_cipso_v4.c (+3/-0)
net/netlabel/netlabel_unlabeled.c (+12/-5)
net/nfc/netlink.c (+1/-0)
net/nfc/rawsock.c (+1/-1)
net/openvswitch/actions.c (+3/-0)
net/openvswitch/conntrack.c (+5/-3)
net/openvswitch/conntrack.h (+4/-2)
net/openvswitch/flow.c (+3/-1)
net/qrtr/qrtr.c (+4/-2)
net/qrtr/tun.c (+17/-1)
net/rds/rdma.c (+3/-0)
net/rfkill/core.c (+3/-0)
net/rose/rose_loopback.c (+13/-4)
net/rxrpc/af_rxrpc.c (+3/-3)
net/rxrpc/call_accept.c (+1/-0)
net/rxrpc/call_object.c (+0/-2)
net/rxrpc/input.c (+1/-1)
net/rxrpc/key.c (+4/-2)
net/sched/act_api.c (+1/-1)
net/sched/act_ct.c (+11/-1)
net/sched/act_mpls.c (+4/-0)
net/sched/cls_api.c (+5/-0)
net/sched/cls_flower.c (+7/-3)
net/sched/cls_tcindex.c (+6/-2)
net/sched/sch_api.c (+6/-5)
net/sched/sch_choke.c (+1/-1)
net/sched/sch_generic.c (+3/-0)
net/sched/sch_gred.c (+1/-1)
net/sched/sch_netem.c (+8/-1)
net/sched/sch_red.c (+1/-1)
net/sched/sch_sfq.c (+1/-1)
net/sched/sch_taprio.c (+17/-2)
net/sctp/input.c (+2/-2)
net/sctp/proc.c (+12/-4)
net/sctp/sm_sideeffect.c (+4/-4)
net/sctp/socket.c (+1/-1)
net/sctp/transport.c (+1/-1)
net/smc/smc_ib.c (+3/-3)
net/sunrpc/addr.c (+1/-1)
net/sunrpc/auth_gss/auth_gss.c (+1/-29)
net/sunrpc/auth_gss/auth_gss_internal.h (+45/-0)
net/sunrpc/auth_gss/gss_krb5_mech.c (+2/-29)
net/sunrpc/debugfs.c (+2/-2)
net/sunrpc/sched.c (+39/-31)
net/sunrpc/xprt.c (+53/-18)
net/sunrpc/xprtrdma/module.c (+1/-0)
net/sunrpc/xprtrdma/rpc_rdma.c (+31/-9)
net/sunrpc/xprtrdma/transport.c (+1/-0)
net/sunrpc/xprtsock.c (+6/-1)
net/switchdev/switchdev.c (+13/-10)
net/tipc/core.c (+6/-0)
net/tipc/core.h (+9/-0)
net/tipc/link.c (+7/-2)
net/tipc/msg.c (+2/-3)
net/tipc/net.c (+5/-15)
net/tipc/net.h (+1/-0)
net/tipc/topsrv.c (+8/-2)
net/tls/tls_device.c (+75/-2)
net/tls/tls_device_fallback.c (+1/-1)
net/tls/tls_sw.c (+7/-1)
net/vmw_vsock/af_vsock.c (+7/-8)
net/vmw_vsock/hyperv_transport.c (+0/-4)
net/vmw_vsock/virtio_transport_common.c (+2/-2)
net/wireless/core.c (+31/-26)
net/wireless/core.h (+3/-2)
net/wireless/nl80211.c (+3/-2)
net/wireless/reg.c (+1/-1)
net/wireless/wext-core.c (+3/-2)
net/x25/af_x25.c (+6/-3)
net/xdp/xsk.c (+6/-4)
net/xfrm/xfrm_device.c (+18/-17)
net/xfrm/xfrm_input.c (+1/-1)
net/xfrm/xfrm_interface.c (+3/-3)
net/xfrm/xfrm_policy.c (+20/-10)
net/xfrm/xfrm_state.c (+5/-3)
samples/bpf/lwt_len_hist.sh (+2/-0)
samples/bpf/xdpsock_user.c (+3/-0)
scripts/Makefile (+7/-2)
scripts/Makefile.build (+4/-8)
scripts/checkpatch.pl (+1/-1)
scripts/depmod.sh (+2/-0)
scripts/kconfig/preprocess.c (+1/-1)
scripts/mod/modpost.c (+1/-1)
scripts/recordmcount.c (+1/-1)
scripts/recordmcount.pl (+5/-1)
scripts/setlocalversion (+16/-5)
security/commoncap.c (+44/-26)
security/integrity/evm/evm_crypto.c (+5/-2)
security/integrity/evm/evm_main.c (+6/-0)
security/integrity/ima/ima.h (+1/-1)
security/integrity/ima/ima_crypto.c (+19/-16)
security/integrity/ima/ima_kexec.c (+3/-0)
security/integrity/ima/ima_mok.c (+2/-3)
security/keys/key.c (+2/-0)
security/keys/trusted.c (+1/-1)
security/lsm_audit.c (+5/-2)
security/selinux/hooks.c (+12/-4)
security/selinux/ibpkey.c (+3/-1)
security/smack/smackfs.c (+19/-2)
sound/core/control.c (+1/-1)
sound/core/memalloc.c (+2/-1)
sound/core/oss/pcm_oss.c (+19/-9)
sound/core/pcm_native.c (+7/-2)
sound/core/rawmidi.c (+35/-14)
sound/core/seq/oss/seq_oss_synth.c (+2/-1)
sound/core/seq/seq_queue.h (+4/-4)
sound/firewire/fireface/ff-transaction.c (+1/-1)
sound/firewire/fireworks/fireworks_transaction.c (+2/-2)
sound/firewire/tascam/tascam-transaction.c (+1/-1)
sound/hda/ext/hdac_ext_controller.c (+2/-0)
sound/hda/intel-nhlt.c (+45/-9)
sound/pci/ctxfi/cthw20k2.c (+1/-1)
sound/pci/hda/hda_bind.c (+4/-0)
sound/pci/hda/hda_codec.c (+1/-1)
sound/pci/hda/hda_controller.c (+0/-7)
sound/pci/hda/hda_controller.h (+2/-1)
sound/pci/hda/hda_generic.c (+8/-4)
sound/pci/hda/hda_generic.h (+1/-0)
sound/pci/hda/hda_intel.c (+42/-30)
sound/pci/hda/hda_sysfs.c (+1/-1)
sound/pci/hda/patch_ca0132.c (+3/-2)
sound/pci/hda/patch_conexant.c (+1/-0)
sound/pci/hda/patch_hdmi.c (+103/-223)
sound/pci/hda/patch_realtek.c (+210/-18)
sound/pci/hda/patch_via.c (+14/-0)
sound/pci/mixart/mixart_core.c (+2/-3)
sound/soc/amd/acp-da7219-max98357a.c (+7/-2)
sound/soc/codecs/ak4458.c (+7/-15)
sound/soc/codecs/cpcap.c (+6/-6)
sound/soc/codecs/cs42l51.c (+21/-1)
sound/soc/codecs/cs42l56.c (+2/-1)
sound/soc/codecs/cx2072x.c (+2/-2)
sound/soc/codecs/wcd9335.c (+1/-1)
sound/soc/codecs/wm8997.c (+2/-0)
sound/soc/codecs/wm8998.c (+3/-1)
sound/soc/codecs/wm_adsp.c (+4/-2)
sound/soc/generic/simple-card-utils.c (+6/-7)
sound/soc/intel/boards/bytcr_rt5640.c (+49/-0)
sound/soc/intel/boards/bytcr_rt5651.c (+13/-0)
sound/soc/intel/boards/haswell.c (+1/-0)
sound/soc/intel/boards/kbl_rt5663_max98927.c (+31/-8)
sound/soc/intel/common/soc-intel-quirks.h (+25/-0)
sound/soc/intel/skylake/bxt-sst.c (+0/-3)
sound/soc/intel/skylake/cnl-sst.c (+29/-7)
sound/soc/intel/skylake/skl-nhlt.c (+2/-1)
sound/soc/intel/skylake/skl-sst-dsp.h (+2/-0)
sound/soc/intel/skylake/skl-topology.c (+174/-5)
sound/soc/intel/skylake/skl-topology.h (+1/-0)
sound/soc/intel/skylake/skl.c (+13/-16)
sound/soc/jz4740/jz4740-i2s.c (+4/-0)
sound/soc/meson/Kconfig (+1/-1)
sound/soc/meson/axg-tdm-interface.c (+13/-1)
sound/soc/meson/axg-tdmin.c (+2/-11)
sound/soc/qcom/lpass-platform.c (+4/-1)
sound/soc/qcom/sdm845.c (+2/-0)
sound/soc/soc-dapm.c (+1/-0)
sound/soc/soc-pcm.c (+2/-0)
sound/soc/soc-topology.c (+1/-1)
sound/soc/sof/debug.c (+1/-1)
sound/soc/sof/intel/hda-codec.c (+1/-2)
sound/soc/sunxi/sun4i-i2s.c (+2/-2)
sound/usb/clock.c (+6/-0)
sound/usb/format.c (+2/-0)
sound/usb/midi.c (+4/-0)
sound/usb/mixer_us16x08.c (+1/-1)
sound/usb/pcm.c (+7/-1)
sound/usb/quirks.c (+16/-5)
sound/usb/stream.c (+3/-3)
tools/arch/x86/include/asm/insn.h (+15/-0)
tools/bpf/bpftool/net.c (+9/-10)
tools/build/Makefile (+0/-4)
tools/include/uapi/linux/bpf.h (+2/-2)
tools/include/uapi/linux/const.h (+5/-0)
tools/objtool/Makefile (+0/-9)
tools/objtool/check.c (+8/-4)
tools/objtool/elf.c (+5/-2)
tools/objtool/orc_gen.c (+26/-7)
tools/perf/Makefile.perf (+0/-4)
tools/perf/builtin-lock.c (+1/-1)
tools/perf/builtin-trace.c (+9/-6)
tools/perf/pmu-events/arch/arm64/ampere/emag/cache.json (+1/-1)
tools/perf/tests/sample-parsing.c (+1/-1)
tools/perf/util/dwarf-aux.c (+8/-0)
tools/perf/util/event.c (+2/-0)
tools/perf/util/intel-pt-decoder/intel-pt-decoder.c (+13/-1)
tools/perf/util/intel-pt-decoder/intel-pt-decoder.h (+1/-0)
tools/perf/util/intel-pt.c (+6/-10)
tools/perf/util/machine.c (+2/-2)
tools/perf/util/parse-regs-options.c (+1/-1)
tools/perf/util/print_binary.c (+1/-1)
tools/perf/util/probe-file.c (+10/-3)
tools/perf/util/scripting-engines/trace-event-python.c (+2/-5)
tools/perf/util/session.c (+2/-1)
tools/perf/util/stat-display.c (+1/-4)
tools/perf/util/trace-event-read.c (+1/-0)
tools/power/acpi/Makefile.config (+0/-1)
tools/scripts/Makefile.include (+10/-0)
tools/testing/ktest/ktest.pl (+7/-2)
tools/testing/selftests/bpf/Makefile (+2/-1)
tools/testing/selftests/bpf/prog_tests/sockopt_multi.c (+2/-1)
tools/testing/selftests/bpf/progs/test_sysctl_prog.c (+2/-2)
tools/testing/selftests/bpf/progs/test_tunnel_kern.c (+9/-39)
tools/testing/selftests/bpf/test_offload.py (+1/-0)
tools/testing/selftests/bpf/test_tunnel.sh (+39/-4)
tools/testing/selftests/bpf/verifier/array_access.c (+2/-1)
tools/testing/selftests/bpf/verifier/bounds_deduction.c (+19/-8)
tools/testing/selftests/bpf/verifier/unpriv.c (+14/-1)
tools/testing/selftests/bpf/verifier/value_ptr_arith.c (+22/-1)
tools/testing/selftests/kvm/include/x86_64/processor.h (+1/-1)
tools/testing/selftests/kvm/lib/x86_64/processor.c (+2/-1)
tools/testing/selftests/memfd/fuse_test.c (+1/-1)
tools/testing/selftests/memfd/memfd_test.c (+1/-1)
tools/testing/selftests/net/fcnal-test.sh (+95/-0)
tools/testing/selftests/net/fib_tests.sh (+0/-1)
tools/testing/selftests/net/forwarding/mirror_gre_bridge_1d_vlan.sh (+9/-0)
tools/testing/selftests/net/forwarding/router_mpath_nh.sh (+1/-1)
tools/testing/selftests/net/forwarding/router_multipath.sh (+1/-1)
tools/testing/selftests/net/pmtu.sh (+69/-2)
tools/testing/selftests/net/test_vxlan_under_vrf.sh (+1/-1)
tools/testing/selftests/net/udpgro.sh (+34/-0)
tools/testing/selftests/net/udpgso_bench_rx.c (+3/-0)
tools/testing/selftests/net/xfrm_policy.sh (+44/-1)
tools/testing/selftests/networking/timestamping/txtimestamp.c (+3/-3)
tools/testing/selftests/pidfd/pidfd_open_test.c (+0/-1)
tools/testing/selftests/pidfd/pidfd_poll_test.c (+0/-1)
tools/testing/selftests/powerpc/alignment/alignment_handler.c (+4/-1)
tools/testing/selftests/powerpc/eeh/Makefile (+1/-1)
tools/testing/selftests/powerpc/eeh/eeh-basic.sh (+6/-1)
tools/testing/selftests/powerpc/eeh/settings (+1/-0)
tools/testing/selftests/powerpc/security/.gitignore (+1/-0)
tools/testing/selftests/powerpc/security/Makefile (+1/-1)
tools/testing/selftests/powerpc/security/entry_flush.c (+164/-0)
tools/testing/selftests/powerpc/security/rfi_flush.c (+29/-6)
tools/testing/selftests/proc/proc-loadavg-001.c (+0/-1)
tools/testing/selftests/proc/proc-self-syscall.c (+0/-1)
tools/testing/selftests/proc/proc-uptime-002.c (+0/-1)
tools/testing/selftests/seccomp/config (+1/-0)
tools/testing/selftests/x86/fsgsbase.c (+68/-0)
tools/usb/usbip/libsrc/usbip_host_common.c (+1/-1)
ubuntu/Kconfig (+6/-0)
update-version-dkms (+5/-4)
virt/kvm/arm/arm.c (+7/-1)
virt/kvm/arm/mmu.c (+2/-2)
virt/kvm/arm/psci.c (+1/-1)
virt/kvm/arm/vgic/vgic-mmio-v3.c (+20/-2)
virt/kvm/kvm_main.c (+15/-6)
Conflict in debian.bluefield/changelog
Conflict in debian.bluefield/config/annotations
Conflict in debian.bluefield/config/config.common.ubuntu
Conflict in debian.bluefield/control.stub.in
Conflict in debian.bluefield/d-i/kernel-versions
Conflict in debian.bluefield/reconstruct
Conflict in debian.bluefield/rules.d/arm64.mk
Conflict in debian.bluefield/tracking-bug
Conflict in drivers/char/ipmi/ipmb_host.c
Conflict in drivers/gpio/gpio-mlxbf2.c
Conflict in drivers/i2c/busses/Kconfig
Conflict in drivers/i2c/busses/Makefile
Conflict in drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
Conflict in drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
Conflict in drivers/net/ethernet/mellanox/mlx5/core/fs_core.c
Conflict in drivers/net/ethernet/mellanox/mlx5/core/main.c
Conflict in drivers/net/ethernet/mellanox/mlxbf_gige/Kconfig
Conflict in drivers/net/ethernet/mellanox/mlxbf_gige/Makefile
Conflict in drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige.h
Conflict in drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c
Conflict in drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_mdio.c
Conflict in drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_regs.h
Conflict in drivers/platform/mellanox/mlx-bootctl.c
Conflict in drivers/platform/mellanox/mlx-trio.c
Conflict in drivers/platform/mellanox/mlxbf_pka/mlxbf_pka_addrs.h
Conflict in drivers/platform/mellanox/mlxbf_pka/mlxbf_pka_config.h
Conflict in drivers/platform/mellanox/mlxbf_pka/mlxbf_pka_dev.c
Conflict in drivers/platform/mellanox/mlxbf_pka/mlxbf_pka_dev.h
Conflict in drivers/platform/mellanox/mlxbf_pka/mlxbf_pka_drv.c
Conflict in drivers/platform/mellanox/mlxbf_pka/mlxbf_pka_firmware.h
Conflict in include/net/act_api.h
Conflict in include/net/flow_offload.h
Conflict in net/netfilter/nf_flow_table_core.c
Conflict in net/netfilter/nf_flow_table_offload.c
Conflict in net/netfilter/nf_tables_api.c
Conflict in net/sched/act_ct.c
Conflict in net/sched/cls_api.c
Reviewer Review Type Date Requested Status
Kleber Sacilotto de Souza (community) Approve
Stefan Bader formal Approve
Review via email: mp+402456@code.launchpad.net

Commit message

Backport TLS offloads for bonding and prerequisite series.

BugLink: https://bugs.launchpad.net/bugs/1926994

SRU Justification:

[Impact]

* Without this TLS offloads over bond interfaces doesn't function.

[Fix]

* Enable offloads via backport from newer upstream kernel.

[Test Case]

* TLS offloads traffic test over a bonded interface.

[Regression Potential]

* There are significant changes in the Bond driver to enable offloads, and subsequently add the TLS bonding. Any regressions would almost certainly occur there

To post a comment you must log in.
Revision history for this message
Stefan Bader (smb) wrote :

The set is rather large, so I was concentrating more on formal aspects for all cherry picks. For backports I glanced over the changes. Hopefully technical issues will be found doing bonded network testing.

review: Approve (formal)
Revision history for this message
Kleber Sacilotto de Souza (kleber-souza) wrote :

Same comment as Stefan's. The cherry-picks and backports look good, hopefully if there are any issues they will be caught with testing.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/Documentation/admin-guide/device-mapper/dm-integrity.rst b/Documentation/admin-guide/device-mapper/dm-integrity.rst
2index a30aa91..3463883 100644
3--- a/Documentation/admin-guide/device-mapper/dm-integrity.rst
4+++ b/Documentation/admin-guide/device-mapper/dm-integrity.rst
5@@ -177,6 +177,12 @@ bitmap_flush_interval:number
6 The bitmap flush interval in milliseconds. The metadata buffers
7 are synchronized when this interval expires.
8
9+legacy_recalculate
10+ Allow recalculating of volumes with HMAC keys. This is disabled by
11+ default for security reasons - an attacker could modify the volume,
12+ set recalc_sector to zero, and the kernel would not detect the
13+ modification.
14+
15
16 The journal mode (D/J), buffer_sectors, journal_watermark, commit_time can
17 be changed when reloading the target (load an inactive table and swap the
18diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
19index 6175a71..359b54d 100644
20--- a/Documentation/admin-guide/kernel-parameters.txt
21+++ b/Documentation/admin-guide/kernel-parameters.txt
22@@ -2683,6 +2683,8 @@
23 mds=off [X86]
24 tsx_async_abort=off [X86]
25 kvm.nx_huge_pages=off [X86]
26+ no_entry_flush [PPC]
27+ no_uaccess_flush [PPC]
28
29 Exceptions:
30 This does not have any effect on
31@@ -3005,6 +3007,8 @@
32
33 noefi Disable EFI runtime services support.
34
35+ no_entry_flush [PPC] Don't flush the L1-D cache when entering the kernel.
36+
37 noexec [IA-64]
38
39 noexec [X86]
40@@ -3054,6 +3058,9 @@
41 nospec_store_bypass_disable
42 [HW] Disable all mitigations for the Speculative Store Bypass vulnerability
43
44+ no_uaccess_flush
45+ [PPC] Don't flush the L1-D cache after accessing user data.
46+
47 noxsave [BUGS=X86] Disables x86 extended register state save
48 and restore using xsave. The kernel will fallback to
49 enabling legacy floating-point and sse state.
50@@ -5175,6 +5182,7 @@
51 device);
52 j = NO_REPORT_LUNS (don't use report luns
53 command, uas only);
54+ k = NO_SAME (do not use WRITE_SAME, uas only)
55 l = NOT_LOCKABLE (don't try to lock and
56 unlock ejectable media, not on uas);
57 m = MAX_SECTORS_64 (don't transfer more
58@@ -5475,6 +5483,10 @@
59 This option is obsoleted by the "nopv" option, which
60 has equivalent effect for XEN platform.
61
62+ xen_no_vector_callback
63+ [KNL,X86,XEN] Disable the vector callback for Xen
64+ event channel interrupts.
65+
66 xen_scrub_pages= [XEN]
67 Boolean option to control scrubbing pages before giving them back
68 to Xen, for use by other domains. Can be also changed at runtime
69@@ -5493,6 +5505,14 @@
70 as generic guest with no PV drivers. Currently support
71 XEN HVM, KVM, HYPER_V and VMWARE guest.
72
73+ xen.event_eoi_delay= [XEN]
74+ How long to delay EOI handling in case of event
75+ storms (jiffies). Default is 10.
76+
77+ xen.event_loop_timeout= [XEN]
78+ After which time (jiffies) the event handling loop
79+ should start to delay EOI handling. Default is 2.
80+
81 xirc2ps_cs= [NET,PCMCIA]
82 Format:
83 <irq>,<irq_mask>,<io>,<full_duplex>,<do_sound>,<lockup_hack>[,<irq2>[,<irq3>[,<irq4>]]]
84diff --git a/Documentation/asm-annotations.rst b/Documentation/asm-annotations.rst
85new file mode 100644
86index 0000000..29ccd6e
87--- /dev/null
88+++ b/Documentation/asm-annotations.rst
89@@ -0,0 +1,216 @@
90+Assembler Annotations
91+=====================
92+
93+Copyright (c) 2017-2019 Jiri Slaby
94+
95+This document describes the new macros for annotation of data and code in
96+assembly. In particular, it contains information about ``SYM_FUNC_START``,
97+``SYM_FUNC_END``, ``SYM_CODE_START``, and similar.
98+
99+Rationale
100+---------
101+Some code like entries, trampolines, or boot code needs to be written in
102+assembly. The same as in C, such code is grouped into functions and
103+accompanied with data. Standard assemblers do not force users into precisely
104+marking these pieces as code, data, or even specifying their length.
105+Nevertheless, assemblers provide developers with such annotations to aid
106+debuggers throughout assembly. On top of that, developers also want to mark
107+some functions as *global* in order to be visible outside of their translation
108+units.
109+
110+Over time, the Linux kernel has adopted macros from various projects (like
111+``binutils``) to facilitate such annotations. So for historic reasons,
112+developers have been using ``ENTRY``, ``END``, ``ENDPROC``, and other
113+annotations in assembly. Due to the lack of their documentation, the macros
114+are used in rather wrong contexts at some locations. Clearly, ``ENTRY`` was
115+intended to denote the beginning of global symbols (be it data or code).
116+``END`` used to mark the end of data or end of special functions with
117+*non-standard* calling convention. In contrast, ``ENDPROC`` should annotate
118+only ends of *standard* functions.
119+
120+When these macros are used correctly, they help assemblers generate a nice
121+object with both sizes and types set correctly. For example, the result of
122+``arch/x86/lib/putuser.S``::
123+
124+ Num: Value Size Type Bind Vis Ndx Name
125+ 25: 0000000000000000 33 FUNC GLOBAL DEFAULT 1 __put_user_1
126+ 29: 0000000000000030 37 FUNC GLOBAL DEFAULT 1 __put_user_2
127+ 32: 0000000000000060 36 FUNC GLOBAL DEFAULT 1 __put_user_4
128+ 35: 0000000000000090 37 FUNC GLOBAL DEFAULT 1 __put_user_8
129+
130+This is not only important for debugging purposes. When there are properly
131+annotated objects like this, tools can be run on them to generate more useful
132+information. In particular, on properly annotated objects, ``objtool`` can be
133+run to check and fix the object if needed. Currently, ``objtool`` can report
134+missing frame pointer setup/destruction in functions. It can also
135+automatically generate annotations for :doc:`ORC unwinder <x86/orc-unwinder>`
136+for most code. Both of these are especially important to support reliable
137+stack traces which are in turn necessary for :doc:`Kernel live patching
138+<livepatch/livepatch>`.
139+
140+Caveat and Discussion
141+---------------------
142+As one might realize, there were only three macros previously. That is indeed
143+insufficient to cover all the combinations of cases:
144+
145+* standard/non-standard function
146+* code/data
147+* global/local symbol
148+
149+There was a discussion_ and instead of extending the current ``ENTRY/END*``
150+macros, it was decided that brand new macros should be introduced instead::
151+
152+ So how about using macro names that actually show the purpose, instead
153+ of importing all the crappy, historic, essentially randomly chosen
154+ debug symbol macro names from the binutils and older kernels?
155+
156+.. _discussion: https://lkml.kernel.org/r/20170217104757.28588-1-jslaby@suse.cz
157+
158+Macros Description
159+------------------
160+
161+The new macros are prefixed with the ``SYM_`` prefix and can be divided into
162+three main groups:
163+
164+1. ``SYM_FUNC_*`` -- to annotate C-like functions. This means functions with
165+ standard C calling conventions, i.e. the stack contains a return address at
166+ the predefined place and a return from the function can happen in a
167+ standard way. When frame pointers are enabled, save/restore of frame
168+ pointer shall happen at the start/end of a function, respectively, too.
169+
170+ Checking tools like ``objtool`` should ensure such marked functions conform
171+ to these rules. The tools can also easily annotate these functions with
172+ debugging information (like *ORC data*) automatically.
173+
174+2. ``SYM_CODE_*`` -- special functions called with special stack. Be it
175+ interrupt handlers with special stack content, trampolines, or startup
176+ functions.
177+
178+ Checking tools mostly ignore checking of these functions. But some debug
179+ information still can be generated automatically. For correct debug data,
180+ this code needs hints like ``UNWIND_HINT_REGS`` provided by developers.
181+
182+3. ``SYM_DATA*`` -- obviously data belonging to ``.data`` sections and not to
183+ ``.text``. Data do not contain instructions, so they have to be treated
184+ specially by the tools: they should not treat the bytes as instructions,
185+ nor assign any debug information to them.
186+
187+Instruction Macros
188+~~~~~~~~~~~~~~~~~~
189+This section covers ``SYM_FUNC_*`` and ``SYM_CODE_*`` enumerated above.
190+
191+* ``SYM_FUNC_START`` and ``SYM_FUNC_START_LOCAL`` are supposed to be **the
192+ most frequent markings**. They are used for functions with standard calling
193+ conventions -- global and local. Like in C, they both align the functions to
194+ architecture specific ``__ALIGN`` bytes. There are also ``_NOALIGN`` variants
195+ for special cases where developers do not want this implicit alignment.
196+
197+ ``SYM_FUNC_START_WEAK`` and ``SYM_FUNC_START_WEAK_NOALIGN`` markings are
198+ also offered as an assembler counterpart to the *weak* attribute known from
199+ C.
200+
201+ All of these **shall** be coupled with ``SYM_FUNC_END``. First, it marks
202+ the sequence of instructions as a function and computes its size to the
203+ generated object file. Second, it also eases checking and processing such
204+ object files as the tools can trivially find exact function boundaries.
205+
206+ So in most cases, developers should write something like in the following
207+ example, having some asm instructions in between the macros, of course::
208+
209+ SYM_FUNC_START(function_hook)
210+ ... asm insns ...
211+ SYM_FUNC_END(function_hook)
212+
213+ In fact, this kind of annotation corresponds to the now deprecated ``ENTRY``
214+ and ``ENDPROC`` macros.
215+
216+* ``SYM_FUNC_START_ALIAS`` and ``SYM_FUNC_START_LOCAL_ALIAS`` serve for those
217+ who decided to have two or more names for one function. The typical use is::
218+
219+ SYM_FUNC_START_ALIAS(__memset)
220+ SYM_FUNC_START(memset)
221+ ... asm insns ...
222+ SYM_FUNC_END(memset)
223+ SYM_FUNC_END_ALIAS(__memset)
224+
225+ In this example, one can call ``__memset`` or ``memset`` with the same
226+ result, except the debug information for the instructions is generated to
227+ the object file only once -- for the non-``ALIAS`` case.
228+
229+* ``SYM_CODE_START`` and ``SYM_CODE_START_LOCAL`` should be used only in
230+ special cases -- if you know what you are doing. This is used exclusively
231+ for interrupt handlers and similar where the calling convention is not the C
232+ one. ``_NOALIGN`` variants exist too. The use is the same as for the ``FUNC``
233+ category above::
234+
235+ SYM_CODE_START_LOCAL(bad_put_user)
236+ ... asm insns ...
237+ SYM_CODE_END(bad_put_user)
238+
239+ Again, every ``SYM_CODE_START*`` **shall** be coupled by ``SYM_CODE_END``.
240+
241+ To some extent, this category corresponds to deprecated ``ENTRY`` and
242+ ``END``. Except ``END`` had several other meanings too.
243+
244+* ``SYM_INNER_LABEL*`` is used to denote a label inside some
245+ ``SYM_{CODE,FUNC}_START`` and ``SYM_{CODE,FUNC}_END``. They are very similar
246+ to C labels, except they can be made global. An example of use::
247+
248+ SYM_CODE_START(ftrace_caller)
249+ /* save_mcount_regs fills in first two parameters */
250+ ...
251+
252+ SYM_INNER_LABEL(ftrace_caller_op_ptr, SYM_L_GLOBAL)
253+ /* Load the ftrace_ops into the 3rd parameter */
254+ ...
255+
256+ SYM_INNER_LABEL(ftrace_call, SYM_L_GLOBAL)
257+ call ftrace_stub
258+ ...
259+ retq
260+ SYM_CODE_END(ftrace_caller)
261+
262+Data Macros
263+~~~~~~~~~~~
264+Similar to instructions, there is a couple of macros to describe data in the
265+assembly.
266+
267+* ``SYM_DATA_START`` and ``SYM_DATA_START_LOCAL`` mark the start of some data
268+ and shall be used in conjunction with either ``SYM_DATA_END``, or
269+ ``SYM_DATA_END_LABEL``. The latter adds also a label to the end, so that
270+ people can use ``lstack`` and (local) ``lstack_end`` in the following
271+ example::
272+
273+ SYM_DATA_START_LOCAL(lstack)
274+ .skip 4096
275+ SYM_DATA_END_LABEL(lstack, SYM_L_LOCAL, lstack_end)
276+
277+* ``SYM_DATA`` and ``SYM_DATA_LOCAL`` are variants for simple, mostly one-line
278+ data::
279+
280+ SYM_DATA(HEAP, .long rm_heap)
281+ SYM_DATA(heap_end, .long rm_stack)
282+
283+ In the end, they expand to ``SYM_DATA_START`` with ``SYM_DATA_END``
284+ internally.
285+
286+Support Macros
287+~~~~~~~~~~~~~~
288+All the above reduce themselves to some invocation of ``SYM_START``,
289+``SYM_END``, or ``SYM_ENTRY`` at last. Normally, developers should avoid using
290+these.
291+
292+Further, in the above examples, one could see ``SYM_L_LOCAL``. There are also
293+``SYM_L_GLOBAL`` and ``SYM_L_WEAK``. All are intended to denote linkage of a
294+symbol marked by them. They are used either in ``_LABEL`` variants of the
295+earlier macros, or in ``SYM_START``.
296+
297+
298+Overriding Macros
299+~~~~~~~~~~~~~~~~~
300+Architecture can also override any of the macros in their own
301+``asm/linkage.h``, including macros specifying the type of a symbol
302+(``SYM_T_FUNC``, ``SYM_T_OBJECT``, and ``SYM_T_NONE``). As every macro
303+described in this file is surrounded by ``#ifdef`` + ``#endif``, it is enough
304+to define the macros differently in the aforementioned architecture-dependent
305+header.
306diff --git a/Documentation/devicetree/bindings/i2c/mellanox,i2c-mlxbf.yaml b/Documentation/devicetree/bindings/i2c/mellanox,i2c-mlxbf.yaml
307new file mode 100644
308index 0000000..d2b401d
309--- /dev/null
310+++ b/Documentation/devicetree/bindings/i2c/mellanox,i2c-mlxbf.yaml
311@@ -0,0 +1,78 @@
312+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
313+%YAML 1.2
314+---
315+$id: http://devicetree.org/schemas/i2c/mellanox,i2c-mlxbf.yaml#
316+$schema: http://devicetree.org/meta-schemas/core.yaml#
317+
318+title: Mellanox I2C SMBus on BlueField SoCs
319+
320+maintainers:
321+ - Khalil Blaiech <kblaiech@nvidia.com>
322+
323+allOf:
324+ - $ref: /schemas/i2c/i2c-controller.yaml#
325+
326+properties:
327+ compatible:
328+ enum:
329+ - mellanox,i2c-mlxbf1
330+ - mellanox,i2c-mlxbf2
331+
332+ reg:
333+ minItems: 3
334+ maxItems: 4
335+ items:
336+ - description: Smbus block registers
337+ - description: Cause master registers
338+ - description: Cause slave registers
339+ - description: Cause coalesce registers
340+
341+ interrupts:
342+ maxItems: 1
343+
344+ clock-frequency:
345+ enum: [ 100000, 400000, 1000000 ]
346+ description:
347+ bus frequency used to configure timing registers;
348+ The frequency is expressed in Hz. Default is 100000.
349+
350+required:
351+ - compatible
352+ - reg
353+ - interrupts
354+
355+unevaluatedProperties: false
356+
357+if:
358+ properties:
359+ compatible:
360+ contains:
361+ enum:
362+ - mellanox,i2c-mlxbf1
363+
364+then:
365+ properties:
366+ reg:
367+ maxItems: 3
368+
369+examples:
370+ - |
371+ i2c@2804000 {
372+ compatible = "mellanox,i2c-mlxbf1";
373+ reg = <0x02804000 0x800>,
374+ <0x02801200 0x020>,
375+ <0x02801260 0x020>;
376+ interrupts = <57>;
377+ clock-frequency = <100000>;
378+ };
379+
380+ - |
381+ i2c@2808800 {
382+ compatible = "mellanox,i2c-mlxbf2";
383+ reg = <0x02808800 0x600>,
384+ <0x02808e00 0x020>,
385+ <0x02808e20 0x020>,
386+ <0x02808e40 0x010>;
387+ interrupts = <57>;
388+ clock-frequency = <400000>;
389+ };
390diff --git a/Documentation/devicetree/bindings/mfd/ahc1ec0.yaml b/Documentation/devicetree/bindings/mfd/ahc1ec0.yaml
391new file mode 100644
392index 0000000..40af14b
393--- /dev/null
394+++ b/Documentation/devicetree/bindings/mfd/ahc1ec0.yaml
395@@ -0,0 +1,69 @@
396+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
397+%YAML 1.2
398+---
399+$id: http://devicetree.org/schemas/mfd/ahc1ec0.yaml#
400+$schema: http://devicetree.org/meta-schemas/core.yaml#
401+
402+title: Advantech Embedded Controller (AHC1EC0)
403+
404+maintainers:
405+ - Campion Kang <campion.kang@advantech.com.tw>
406+
407+description: |
408+ AHC1EC0 is one of the embedded controllers used by Advantech to provide several
409+ functions such as watchdog, hwmon, brightness, etc. Advantech related applications
410+ can control the whole system via these functions.
411+
412+properties:
413+ compatible:
414+ const: advantech,ahc1ec0
415+
416+ advantech,sub-dev-nb:
417+ description:
418+ The number of sub-devices specified in the platform.
419+ $ref: /schemas/types.yaml#/definitions/uint32
420+ maxItems: 1
421+
422+ advantech,sub-dev:
423+ description:
424+ A list of the sub-devices supported in the platform. Defines for the
425+ appropriate values can found in dt-bindings/mfd/ahc1ec0-dt.h.
426+ $ref: "/schemas/types.yaml#/definitions/uint32-array"
427+ minItems: 1
428+ maxItems: 6
429+
430+ advantech,hwmon-profile:
431+ description:
432+ The number of sub-devices specified in the platform. Defines for the
433+ hwmon profiles can found in dt-bindings/mfd/ahc1ec0-dt.
434+ $ref: /schemas/types.yaml#/definitions/uint32
435+ maxItems: 1
436+
437+required:
438+ - compatible
439+ - advantech,sub-dev-nb
440+ - advantech,sub-dev
441+
442+if:
443+ properties:
444+ advantech,sub-dev:
445+ contains:
446+ const: 0x3
447+then:
448+ required:
449+ - advantech,hwmon-profile
450+
451+additionalProperties: false
452+
453+examples:
454+ - |
455+ #include <dt-bindings/mfd/ahc1ec0-dt.h>
456+ ahc1ec0 {
457+ compatible = "advantech,ahc1ec0";
458+
459+ advantech,sub-dev-nb = <2>;
460+ advantech,sub-dev = <AHC1EC0_SUBDEV_HWMON
461+ AHC1EC0_SUBDEV_WDT>;
462+
463+ advantech,hwmon-profile = <AHC1EC0_HWMON_PRO_UNO2271G>;
464+ };
465diff --git a/Documentation/devicetree/bindings/net/btusb.txt b/Documentation/devicetree/bindings/net/btusb.txt
466index b1ad6ee..c51dd99 100644
467--- a/Documentation/devicetree/bindings/net/btusb.txt
468+++ b/Documentation/devicetree/bindings/net/btusb.txt
469@@ -38,7 +38,7 @@ Following example uses irq pin number 3 of gpio0 for out of band wake-on-bt:
470 compatible = "usb1286,204e";
471 reg = <1>;
472 interrupt-parent = <&gpio0>;
473- interrupt-name = "wakeup";
474+ interrupt-names = "wakeup";
475 interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
476 };
477 };
478diff --git a/Documentation/devicetree/bindings/net/can/tcan4x5x.txt b/Documentation/devicetree/bindings/net/can/tcan4x5x.txt
479index 27e1b4c..9cb3560 100644
480--- a/Documentation/devicetree/bindings/net/can/tcan4x5x.txt
481+++ b/Documentation/devicetree/bindings/net/can/tcan4x5x.txt
482@@ -33,7 +33,7 @@ tcan4x5x: tcan4x5x@0 {
483 spi-max-frequency = <10000000>;
484 bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
485 interrupt-parent = <&gpio1>;
486- interrupts = <14 GPIO_ACTIVE_LOW>;
487+ interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
488 device-state-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
489 device-wake-gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
490 reset-gpios = <&gpio1 27 GPIO_ACTIVE_LOW>;
491diff --git a/Documentation/devicetree/bindings/net/ethernet-controller.yaml b/Documentation/devicetree/bindings/net/ethernet-controller.yaml
492index 0e7c317..4f78e9a 100644
493--- a/Documentation/devicetree/bindings/net/ethernet-controller.yaml
494+++ b/Documentation/devicetree/bindings/net/ethernet-controller.yaml
495@@ -190,6 +190,11 @@ properties:
496 Indicates that full-duplex is used. When absent, half
497 duplex is assumed.
498
499+ pause:
500+ $ref: /schemas/types.yaml#definitions/flag
501+ description:
502+ Indicates that pause should be enabled.
503+
504 asym-pause:
505 $ref: /schemas/types.yaml#definitions/flag
506 description:
507diff --git a/Documentation/devicetree/bindings/net/nfc/nxp-nci.txt b/Documentation/devicetree/bindings/net/nfc/nxp-nci.txt
508index cfaf889..9e4dc51 100644
509--- a/Documentation/devicetree/bindings/net/nfc/nxp-nci.txt
510+++ b/Documentation/devicetree/bindings/net/nfc/nxp-nci.txt
511@@ -25,7 +25,7 @@ Example (for ARM-based BeagleBone with NPC100 NFC controller on I2C2):
512 clock-frequency = <100000>;
513
514 interrupt-parent = <&gpio1>;
515- interrupts = <29 GPIO_ACTIVE_HIGH>;
516+ interrupts = <29 IRQ_TYPE_LEVEL_HIGH>;
517
518 enable-gpios = <&gpio0 30 GPIO_ACTIVE_HIGH>;
519 firmware-gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>;
520diff --git a/Documentation/devicetree/bindings/net/nfc/pn544.txt b/Documentation/devicetree/bindings/net/nfc/pn544.txt
521index 92f399e..2bd8256 100644
522--- a/Documentation/devicetree/bindings/net/nfc/pn544.txt
523+++ b/Documentation/devicetree/bindings/net/nfc/pn544.txt
524@@ -25,7 +25,7 @@ Example (for ARM-based BeagleBone with PN544 on I2C2):
525 clock-frequency = <400000>;
526
527 interrupt-parent = <&gpio1>;
528- interrupts = <17 GPIO_ACTIVE_HIGH>;
529+ interrupts = <17 IRQ_TYPE_LEVEL_HIGH>;
530
531 enable-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
532 firmware-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>;
533diff --git a/Documentation/filesystems/seq_file.txt b/Documentation/filesystems/seq_file.txt
534index d412b23..7cf7143 100644
535--- a/Documentation/filesystems/seq_file.txt
536+++ b/Documentation/filesystems/seq_file.txt
537@@ -192,6 +192,12 @@ between the calls to start() and stop(), so holding a lock during that time
538 is a reasonable thing to do. The seq_file code will also avoid taking any
539 other locks while the iterator is active.
540
541+The iterater value returned by start() or next() is guaranteed to be
542+passed to a subsequent next() or stop() call. This allows resources
543+such as locks that were taken to be reliably released. There is *no*
544+guarantee that the iterator will be passed to show(), though in practice
545+it often will be.
546+
547
548 Formatted output
549
550diff --git a/Documentation/filesystems/sysfs.txt b/Documentation/filesystems/sysfs.txt
551index ddf15b1..33ec0a0 100644
552--- a/Documentation/filesystems/sysfs.txt
553+++ b/Documentation/filesystems/sysfs.txt
554@@ -232,12 +232,10 @@ Other notes:
555 is 4096.
556
557 - show() methods should return the number of bytes printed into the
558- buffer. This is the return value of scnprintf().
559+ buffer.
560
561-- show() must not use snprintf() when formatting the value to be
562- returned to user space. If you can guarantee that an overflow
563- will never happen you can use sprintf() otherwise you must use
564- scnprintf().
565+- show() should only use sysfs_emit() or sysfs_emit_at() when formatting
566+ the value to be returned to user space.
567
568 - store() should return the number of bytes used from the buffer. If the
569 entire buffer has been used, just return the count argument.
570diff --git a/Documentation/index.rst b/Documentation/index.rst
571index b843e31..2ceab19 100644
572--- a/Documentation/index.rst
573+++ b/Documentation/index.rst
574@@ -135,6 +135,14 @@ needed).
575 mic/index
576 scheduler/index
577
578+Architecture-agnostic documentation
579+-----------------------------------
580+
581+.. toctree::
582+ :maxdepth: 2
583+
584+ asm-annotations
585+
586 Architecture-specific documentation
587 -----------------------------------
588
589diff --git a/Documentation/media/uapi/v4l/colorspaces-defs.rst b/Documentation/media/uapi/v4l/colorspaces-defs.rst
590index e122bbe..aabb081 100644
591--- a/Documentation/media/uapi/v4l/colorspaces-defs.rst
592+++ b/Documentation/media/uapi/v4l/colorspaces-defs.rst
593@@ -36,8 +36,7 @@ whole range, 0-255, dividing the angular value by 1.41. The enum
594 :c:type:`v4l2_hsv_encoding` specifies which encoding is used.
595
596 .. note:: The default R'G'B' quantization is full range for all
597- colorspaces except for BT.2020 which uses limited range R'G'B'
598- quantization.
599+ colorspaces. HSV formats are always full range.
600
601 .. tabularcolumns:: |p{6.7cm}|p{10.8cm}|
602
603@@ -169,8 +168,8 @@ whole range, 0-255, dividing the angular value by 1.41. The enum
604 - Details
605 * - ``V4L2_QUANTIZATION_DEFAULT``
606 - Use the default quantization encoding as defined by the
607- colorspace. This is always full range for R'G'B' (except for the
608- BT.2020 colorspace) and HSV. It is usually limited range for Y'CbCr.
609+ colorspace. This is always full range for R'G'B' and HSV.
610+ It is usually limited range for Y'CbCr.
611 * - ``V4L2_QUANTIZATION_FULL_RANGE``
612 - Use the full range quantization encoding. I.e. the range [0…1] is
613 mapped to [0…255] (with possible clipping to [1…254] to avoid the
614@@ -180,4 +179,4 @@ whole range, 0-255, dividing the angular value by 1.41. The enum
615 * - ``V4L2_QUANTIZATION_LIM_RANGE``
616 - Use the limited range quantization encoding. I.e. the range [0…1]
617 is mapped to [16…235]. Cb and Cr are mapped from [-0.5…0.5] to
618- [16…240].
619+ [16…240]. Limited Range cannot be used with HSV.
620diff --git a/Documentation/media/uapi/v4l/colorspaces-details.rst b/Documentation/media/uapi/v4l/colorspaces-details.rst
621index 8b0ba36..fd0cf57 100644
622--- a/Documentation/media/uapi/v4l/colorspaces-details.rst
623+++ b/Documentation/media/uapi/v4l/colorspaces-details.rst
624@@ -377,9 +377,8 @@ Colorspace BT.2020 (V4L2_COLORSPACE_BT2020)
625 The :ref:`itu2020` standard defines the colorspace used by Ultra-high
626 definition television (UHDTV). The default transfer function is
627 ``V4L2_XFER_FUNC_709``. The default Y'CbCr encoding is
628-``V4L2_YCBCR_ENC_BT2020``. The default R'G'B' quantization is limited
629-range (!), and so is the default Y'CbCr quantization. The chromaticities
630-of the primary colors and the white reference are:
631+``V4L2_YCBCR_ENC_BT2020``. The default Y'CbCr quantization is limited range.
632+The chromaticities of the primary colors and the white reference are:
633
634
635
636diff --git a/Documentation/networking/device_drivers/amazon/ena.txt b/Documentation/networking/device_drivers/amazon/ena.txt
637index 1bb55c7..bc20938 100644
638--- a/Documentation/networking/device_drivers/amazon/ena.txt
639+++ b/Documentation/networking/device_drivers/amazon/ena.txt
640@@ -248,7 +248,7 @@ RSS:
641 inputs for hash functions.
642 - The driver configures RSS settings using the AQ SetFeature command
643 (ENA_ADMIN_RSS_HASH_FUNCTION, ENA_ADMIN_RSS_HASH_INPUT and
644- ENA_ADMIN_RSS_REDIRECTION_TABLE_CONFIG properties).
645+ ENA_ADMIN_RSS_INDIRECTION_TABLE_CONFIG properties).
646 - If the NETIF_F_RXHASH flag is set, the 32-bit result of the hash
647 function delivered in the Rx CQ descriptor is set in the received
648 SKB.
649diff --git a/Documentation/networking/j1939.rst b/Documentation/networking/j1939.rst
650index f5be243..4b0db51 100644
651--- a/Documentation/networking/j1939.rst
652+++ b/Documentation/networking/j1939.rst
653@@ -414,8 +414,8 @@ Send:
654 .can_family = AF_CAN,
655 .can_addr.j1939 = {
656 .name = J1939_NO_NAME;
657- .pgn = 0x30,
658- .addr = 0x12300,
659+ .addr = 0x30,
660+ .pgn = 0x12300,
661 },
662 };
663
664diff --git a/Documentation/virt/kvm/api.txt b/Documentation/virt/kvm/api.txt
665index c984d54..485cc6c 100644
666--- a/Documentation/virt/kvm/api.txt
667+++ b/Documentation/virt/kvm/api.txt
668@@ -172,6 +172,9 @@ is dependent on the CPU capability and the kernel configuration. The limit can
669 be retrieved using KVM_CAP_ARM_VM_IPA_SIZE of the KVM_CHECK_EXTENSION
670 ioctl() at run-time.
671
672+Creation of the VM will fail if the requested IPA size (whether it is
673+implicit or explicit) is unsupported on the host.
674+
675 Please note that configuring the IPA size does not affect the capability
676 exposed by the guest CPUs in ID_AA64MMFR0_EL1[PARange]. It only affects
677 size of the address translated by the stage2 level (guest physical to
678@@ -1132,6 +1135,9 @@ field userspace_addr, which must point at user addressable memory for
679 the entire memory slot size. Any object may back this memory, including
680 anonymous memory, ordinary files, and hugetlbfs.
681
682+On architectures that support a form of address tagging, userspace_addr must
683+be an untagged address.
684+
685 It is recommended that the lower 21 bits of guest_phys_addr and userspace_addr
686 be identical. This allows large pages in the guest to be backed by large
687 pages in the host.
688diff --git a/Documentation/virt/kvm/mmu.txt b/Documentation/virt/kvm/mmu.txt
689index dadb29e..ec072c6 100644
690--- a/Documentation/virt/kvm/mmu.txt
691+++ b/Documentation/virt/kvm/mmu.txt
692@@ -420,7 +420,7 @@ If the generation number of the spte does not equal the global generation
693 number, it will ignore the cached MMIO information and handle the page
694 fault through the slow path.
695
696-Since only 19 bits are used to store generation-number on mmio spte, all
697+Since only 18 bits are used to store generation-number on mmio spte, all
698 pages are zapped when there is an overflow.
699
700 Unfortunately, a single memory access might access kvm_memslots(kvm) multiple
701diff --git a/Documentation/x86/topology.rst b/Documentation/x86/topology.rst
702index e297399..7f58010 100644
703--- a/Documentation/x86/topology.rst
704+++ b/Documentation/x86/topology.rst
705@@ -41,6 +41,8 @@ Package
706 Packages contain a number of cores plus shared resources, e.g. DRAM
707 controller, shared caches etc.
708
709+Modern systems may also use the term 'Die' for package.
710+
711 AMD nomenclature for package is 'Node'.
712
713 Package-related topology information in the kernel:
714@@ -53,11 +55,18 @@ Package-related topology information in the kernel:
715
716 The number of dies in a package. This information is retrieved via CPUID.
717
718+ - cpuinfo_x86.cpu_die_id:
719+
720+ The physical ID of the die. This information is retrieved via CPUID.
721+
722 - cpuinfo_x86.phys_proc_id:
723
724 The physical ID of the package. This information is retrieved via CPUID
725 and deduced from the APIC IDs of the cores in the package.
726
727+ Modern systems use this value for the socket. There may be multiple
728+ packages within a socket. This value may differ from cpu_die_id.
729+
730 - cpuinfo_x86.logical_proc_id:
731
732 The logical ID of the package. As we do not trust BIOSes to enumerate the
733diff --git a/Documentation/xtensa/mmu.rst b/Documentation/xtensa/mmu.rst
734index e52a129..450573a 100644
735--- a/Documentation/xtensa/mmu.rst
736+++ b/Documentation/xtensa/mmu.rst
737@@ -82,7 +82,8 @@ Default MMUv2-compatible layout::
738 +------------------+
739 | VMALLOC area | VMALLOC_START 0xc0000000 128MB - 64KB
740 +------------------+ VMALLOC_END
741- | Cache aliasing | TLBTEMP_BASE_1 0xc7ff0000 DCACHE_WAY_SIZE
742+ +------------------+
743+ | Cache aliasing | TLBTEMP_BASE_1 0xc8000000 DCACHE_WAY_SIZE
744 | remap area 1 |
745 +------------------+
746 | Cache aliasing | TLBTEMP_BASE_2 DCACHE_WAY_SIZE
747@@ -124,7 +125,8 @@ Default MMUv2-compatible layout::
748 +------------------+
749 | VMALLOC area | VMALLOC_START 0xa0000000 128MB - 64KB
750 +------------------+ VMALLOC_END
751- | Cache aliasing | TLBTEMP_BASE_1 0xa7ff0000 DCACHE_WAY_SIZE
752+ +------------------+
753+ | Cache aliasing | TLBTEMP_BASE_1 0xa8000000 DCACHE_WAY_SIZE
754 | remap area 1 |
755 +------------------+
756 | Cache aliasing | TLBTEMP_BASE_2 DCACHE_WAY_SIZE
757@@ -167,7 +169,8 @@ Default MMUv2-compatible layout::
758 +------------------+
759 | VMALLOC area | VMALLOC_START 0x90000000 128MB - 64KB
760 +------------------+ VMALLOC_END
761- | Cache aliasing | TLBTEMP_BASE_1 0x97ff0000 DCACHE_WAY_SIZE
762+ +------------------+
763+ | Cache aliasing | TLBTEMP_BASE_1 0x98000000 DCACHE_WAY_SIZE
764 | remap area 1 |
765 +------------------+
766 | Cache aliasing | TLBTEMP_BASE_2 DCACHE_WAY_SIZE
767diff --git a/MAINTAINERS b/MAINTAINERS
768index d0e1029..349639d 100644
769--- a/MAINTAINERS
770+++ b/MAINTAINERS
771@@ -537,6 +537,17 @@ S: Maintained
772 F: Documentation/scsi/advansys.txt
773 F: drivers/scsi/advansys.c
774
775+ADVANTECH AHC1EC0 EMBEDDED CONTROLLER DRIVER
776+M: Campion Kang <campion.kang@advantech.com.tw>
777+L: linux-kernel@vger.kernel.org
778+S: Maintained
779+F: Documentation/devicetree/bindings/mfd/ahc1ec0.yaml
780+F: drivers/hwmon/ahc1ec0-hwmon.c
781+F: drivers/mfd/ahc1ec0.c
782+F: drivers/watchdog/ahc1ec0-wdt.c
783+F: include/dt-bindings/mfd/ahc1ec0-dt.h
784+F: include/linux/mfd/ahc1ec0.h
785+
786 ADXL34X THREE-AXIS DIGITAL ACCELEROMETER DRIVER (ADXL345/ADXL346)
787 M: Michael Hennerich <michael.hennerich@analog.com>
788 W: http://wiki.analog.com/ADXL345
789diff --git a/Makefile b/Makefile
790index aa05a62..6f1ffe0 100644
791--- a/Makefile
792+++ b/Makefile
793@@ -1,7 +1,7 @@
794 # SPDX-License-Identifier: GPL-2.0
795 VERSION = 5
796 PATCHLEVEL = 4
797-SUBLEVEL = 73
798+SUBLEVEL = 106
799 EXTRAVERSION =
800 NAME = Kleptomaniac Octopus
801
802@@ -450,7 +450,7 @@ LEX = flex
803 YACC = bison
804 AWK = awk
805 INSTALLKERNEL := installkernel
806-DEPMOD = /sbin/depmod
807+DEPMOD = depmod
808 PERL = perl
809 PYTHON = python
810 PYTHON3 = python3
811@@ -506,7 +506,7 @@ KBUILD_AFLAGS := -D__ASSEMBLY__ -fno-PIE
812 KBUILD_CFLAGS := -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs \
813 -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE \
814 -Werror=implicit-function-declaration -Werror=implicit-int \
815- -Wno-format-security \
816+ -Werror=return-type -Wno-format-security \
817 -std=gnu89
818 KBUILD_CPPFLAGS := -D__KERNEL__
819 KBUILD_AFLAGS_KERNEL :=
820@@ -829,8 +829,11 @@ DEBUG_CFLAGS += -gsplit-dwarf
821 else
822 DEBUG_CFLAGS += -g
823 endif
824+ifneq ($(LLVM_IAS),1)
825 KBUILD_AFLAGS += -Wa,-gdwarf-2
826 endif
827+endif
828+
829 ifdef CONFIG_DEBUG_INFO_DWARF4
830 DEBUG_CFLAGS += -gdwarf-4
831 endif
832@@ -944,12 +947,6 @@ KBUILD_CFLAGS += $(call cc-option,-Werror=designated-init)
833 # change __FILE__ to the relative path from the srctree
834 KBUILD_CFLAGS += $(call cc-option,-fmacro-prefix-map=$(srctree)/=)
835
836-# ensure -fcf-protection is disabled when using retpoline as it is
837-# incompatible with -mindirect-branch=thunk-extern
838-ifdef CONFIG_RETPOLINE
839-KBUILD_CFLAGS += $(call cc-option,-fcf-protection=none)
840-endif
841-
842 include scripts/Makefile.kasan
843 include scripts/Makefile.extrawarn
844 include scripts/Makefile.ubsan
845@@ -1205,9 +1202,15 @@ define filechk_utsrelease.h
846 endef
847
848 define filechk_version.h
849- echo \#define LINUX_VERSION_CODE $(shell \
850- expr $(VERSION) \* 65536 + 0$(PATCHLEVEL) \* 256 + 0$(SUBLEVEL)); \
851- echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))'
852+ if [ $(SUBLEVEL) -gt 255 ]; then \
853+ echo \#define LINUX_VERSION_CODE $(shell \
854+ expr $(VERSION) \* 65536 + 0$(PATCHLEVEL) \* 256 + 255); \
855+ else \
856+ echo \#define LINUX_VERSION_CODE $(shell \
857+ expr $(VERSION) \* 65536 + 0$(PATCHLEVEL) \* 256 + $(SUBLEVEL)); \
858+ fi; \
859+ echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + \
860+ ((c) > 255 ? 255 : (c)))'
861 endef
862
863 $(version_h): FORCE
864diff --git a/arch/Kconfig b/arch/Kconfig
865index 238dccf..a8df66e 100644
866--- a/arch/Kconfig
867+++ b/arch/Kconfig
868@@ -131,6 +131,22 @@ config UPROBES
869 managed by the kernel and kept transparent to the probed
870 application. )
871
872+config HAVE_64BIT_ALIGNED_ACCESS
873+ def_bool 64BIT && !HAVE_EFFICIENT_UNALIGNED_ACCESS
874+ help
875+ Some architectures require 64 bit accesses to be 64 bit
876+ aligned, which also requires structs containing 64 bit values
877+ to be 64 bit aligned too. This includes some 32 bit
878+ architectures which can do 64 bit accesses, as well as 64 bit
879+ architectures without unaligned access.
880+
881+ This symbol should be selected by an architecture if 64 bit
882+ accesses are required to be 64 bit aligned in this way even
883+ though it is not a 64 bit architecture.
884+
885+ See Documentation/unaligned-memory-access.txt for more
886+ information on the topic of unaligned memory accesses.
887+
888 config HAVE_EFFICIENT_UNALIGNED_ACCESS
889 bool
890 help
891@@ -405,6 +421,13 @@ config MMU_GATHER_NO_RANGE
892 config HAVE_MMU_GATHER_NO_GATHER
893 bool
894
895+config ARCH_WANT_IRQS_OFF_ACTIVATE_MM
896+ bool
897+ help
898+ Temporary select until all architectures can be converted to have
899+ irqs disabled over activate_mm. Architectures that do IPI based TLB
900+ shootdowns should enable this.
901+
902 config ARCH_HAVE_NMI_SAFE_CMPXCHG
903 bool
904
905diff --git a/arch/arc/Makefile b/arch/arc/Makefile
906index f1c44cc..6f05e50 100644
907--- a/arch/arc/Makefile
908+++ b/arch/arc/Makefile
909@@ -90,16 +90,22 @@ libs-y += arch/arc/lib/ $(LIBGCC)
910
911 boot := arch/arc/boot
912
913-#default target for make without any arguments.
914-KBUILD_IMAGE := $(boot)/bootpImage
915-
916-all: bootpImage
917-bootpImage: vmlinux
918-
919-boot_targets += uImage uImage.bin uImage.gz
920+boot_targets := uImage.bin uImage.gz uImage.lzma
921
922+PHONY += $(boot_targets)
923 $(boot_targets): vmlinux
924 $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
925
926+uimage-default-y := uImage.bin
927+uimage-default-$(CONFIG_KERNEL_GZIP) := uImage.gz
928+uimage-default-$(CONFIG_KERNEL_LZMA) := uImage.lzma
929+
930+PHONY += uImage
931+uImage: $(uimage-default-y)
932+ @ln -sf $< $(boot)/uImage
933+ @$(kecho) ' Image $(boot)/uImage is ready'
934+
935+CLEAN_FILES += $(boot)/uImage
936+
937 archclean:
938 $(Q)$(MAKE) $(clean)=$(boot)
939diff --git a/arch/arc/boot/Makefile b/arch/arc/boot/Makefile
940index 538b92f..3b1f8a6 100644
941--- a/arch/arc/boot/Makefile
942+++ b/arch/arc/boot/Makefile
943@@ -1,5 +1,5 @@
944 # SPDX-License-Identifier: GPL-2.0
945-targets := vmlinux.bin vmlinux.bin.gz uImage
946+targets := vmlinux.bin vmlinux.bin.gz
947
948 # uImage build relies on mkimage being availble on your host for ARC target
949 # You will need to build u-boot for ARC, rename mkimage to arc-elf32-mkimage
950@@ -13,11 +13,6 @@ LINUX_START_TEXT = $$(readelf -h vmlinux | \
951 UIMAGE_LOADADDR = $(CONFIG_LINUX_LINK_BASE)
952 UIMAGE_ENTRYADDR = $(LINUX_START_TEXT)
953
954-suffix-y := bin
955-suffix-$(CONFIG_KERNEL_GZIP) := gz
956-suffix-$(CONFIG_KERNEL_LZMA) := lzma
957-
958-targets += uImage
959 targets += uImage.bin
960 targets += uImage.gz
961 targets += uImage.lzma
962@@ -42,7 +37,3 @@ $(obj)/uImage.gz: $(obj)/vmlinux.bin.gz FORCE
963
964 $(obj)/uImage.lzma: $(obj)/vmlinux.bin.lzma FORCE
965 $(call if_changed,uimage,lzma)
966-
967-$(obj)/uImage: $(obj)/uImage.$(suffix-y)
968- @ln -sf $(notdir $<) $@
969- @echo ' Image $@ is ready'
970diff --git a/arch/arc/boot/dts/axc001.dtsi b/arch/arc/boot/dts/axc001.dtsi
971index 6ec1fcd..9224728 100644
972--- a/arch/arc/boot/dts/axc001.dtsi
973+++ b/arch/arc/boot/dts/axc001.dtsi
974@@ -85,7 +85,7 @@
975 * avoid duplicating the MB dtsi file given that IRQ from
976 * this intc to cpu intc are different for axs101 and axs103
977 */
978- mb_intc: dw-apb-ictl@e0012000 {
979+ mb_intc: interrupt-controller@e0012000 {
980 #interrupt-cells = <1>;
981 compatible = "snps,dw-apb-ictl";
982 reg = < 0x0 0xe0012000 0x0 0x200 >;
983diff --git a/arch/arc/boot/dts/axc003.dtsi b/arch/arc/boot/dts/axc003.dtsi
984index ac8e1b4..cd1edcf 100644
985--- a/arch/arc/boot/dts/axc003.dtsi
986+++ b/arch/arc/boot/dts/axc003.dtsi
987@@ -129,7 +129,7 @@
988 * avoid duplicating the MB dtsi file given that IRQ from
989 * this intc to cpu intc are different for axs101 and axs103
990 */
991- mb_intc: dw-apb-ictl@e0012000 {
992+ mb_intc: interrupt-controller@e0012000 {
993 #interrupt-cells = <1>;
994 compatible = "snps,dw-apb-ictl";
995 reg = < 0x0 0xe0012000 0x0 0x200 >;
996diff --git a/arch/arc/boot/dts/axc003_idu.dtsi b/arch/arc/boot/dts/axc003_idu.dtsi
997index 9da21e7..7077938 100644
998--- a/arch/arc/boot/dts/axc003_idu.dtsi
999+++ b/arch/arc/boot/dts/axc003_idu.dtsi
1000@@ -135,7 +135,7 @@
1001 * avoid duplicating the MB dtsi file given that IRQ from
1002 * this intc to cpu intc are different for axs101 and axs103
1003 */
1004- mb_intc: dw-apb-ictl@e0012000 {
1005+ mb_intc: interrupt-controller@e0012000 {
1006 #interrupt-cells = <1>;
1007 compatible = "snps,dw-apb-ictl";
1008 reg = < 0x0 0xe0012000 0x0 0x200 >;
1009diff --git a/arch/arc/boot/dts/vdk_axc003.dtsi b/arch/arc/boot/dts/vdk_axc003.dtsi
1010index f8be7ba..c21d0eb 100644
1011--- a/arch/arc/boot/dts/vdk_axc003.dtsi
1012+++ b/arch/arc/boot/dts/vdk_axc003.dtsi
1013@@ -46,7 +46,7 @@
1014
1015 };
1016
1017- mb_intc: dw-apb-ictl@e0012000 {
1018+ mb_intc: interrupt-controller@e0012000 {
1019 #interrupt-cells = <1>;
1020 compatible = "snps,dw-apb-ictl";
1021 reg = < 0xe0012000 0x200 >;
1022diff --git a/arch/arc/boot/dts/vdk_axc003_idu.dtsi b/arch/arc/boot/dts/vdk_axc003_idu.dtsi
1023index 0afa3e5..4d34885 100644
1024--- a/arch/arc/boot/dts/vdk_axc003_idu.dtsi
1025+++ b/arch/arc/boot/dts/vdk_axc003_idu.dtsi
1026@@ -54,7 +54,7 @@
1027
1028 };
1029
1030- mb_intc: dw-apb-ictl@e0012000 {
1031+ mb_intc: interrupt-controller@e0012000 {
1032 #interrupt-cells = <1>;
1033 compatible = "snps,dw-apb-ictl";
1034 reg = < 0xe0012000 0x200 >;
1035diff --git a/arch/arc/include/asm/page.h b/arch/arc/include/asm/page.h
1036index 0a32e8c..bcd1920 100644
1037--- a/arch/arc/include/asm/page.h
1038+++ b/arch/arc/include/asm/page.h
1039@@ -10,6 +10,7 @@
1040 #ifndef __ASSEMBLY__
1041
1042 #define clear_page(paddr) memset((paddr), 0, PAGE_SIZE)
1043+#define copy_user_page(to, from, vaddr, pg) copy_page(to, from)
1044 #define copy_page(to, from) memcpy((to), (from), PAGE_SIZE)
1045
1046 struct vm_area_struct;
1047diff --git a/arch/arc/include/asm/pgtable.h b/arch/arc/include/asm/pgtable.h
1048index 7addd03..6bdcf9b 100644
1049--- a/arch/arc/include/asm/pgtable.h
1050+++ b/arch/arc/include/asm/pgtable.h
1051@@ -135,8 +135,10 @@
1052
1053 #ifdef CONFIG_ARC_HAS_PAE40
1054 #define PTE_BITS_NON_RWX_IN_PD1 (0xff00000000 | PAGE_MASK | _PAGE_CACHEABLE)
1055+#define MAX_POSSIBLE_PHYSMEM_BITS 40
1056 #else
1057 #define PTE_BITS_NON_RWX_IN_PD1 (PAGE_MASK | _PAGE_CACHEABLE)
1058+#define MAX_POSSIBLE_PHYSMEM_BITS 32
1059 #endif
1060
1061 /**************************************************************************
1062diff --git a/arch/arc/kernel/perf_event.c b/arch/arc/kernel/perf_event.c
1063index 79849f3..145722f 100644
1064--- a/arch/arc/kernel/perf_event.c
1065+++ b/arch/arc/kernel/perf_event.c
1066@@ -562,7 +562,7 @@ static int arc_pmu_device_probe(struct platform_device *pdev)
1067 {
1068 struct arc_reg_pct_build pct_bcr;
1069 struct arc_reg_cc_build cc_bcr;
1070- int i, has_interrupts, irq;
1071+ int i, has_interrupts, irq = -1;
1072 int counter_size; /* in bits */
1073
1074 union cc_name {
1075@@ -637,19 +637,28 @@ static int arc_pmu_device_probe(struct platform_device *pdev)
1076 .attr_groups = arc_pmu->attr_groups,
1077 };
1078
1079- if (has_interrupts && (irq = platform_get_irq(pdev, 0) >= 0)) {
1080+ if (has_interrupts) {
1081+ irq = platform_get_irq(pdev, 0);
1082+ if (irq >= 0) {
1083+ int ret;
1084
1085- arc_pmu->irq = irq;
1086+ arc_pmu->irq = irq;
1087
1088- /* intc map function ensures irq_set_percpu_devid() called */
1089- request_percpu_irq(irq, arc_pmu_intr, "ARC perf counters",
1090- this_cpu_ptr(&arc_pmu_cpu));
1091+ /* intc map function ensures irq_set_percpu_devid() called */
1092+ ret = request_percpu_irq(irq, arc_pmu_intr, "ARC perf counters",
1093+ this_cpu_ptr(&arc_pmu_cpu));
1094+
1095+ if (!ret)
1096+ on_each_cpu(arc_cpu_pmu_irq_init, &irq, 1);
1097+ else
1098+ irq = -1;
1099+ }
1100
1101- on_each_cpu(arc_cpu_pmu_irq_init, &irq, 1);
1102- } else {
1103- arc_pmu->pmu.capabilities |= PERF_PMU_CAP_NO_INTERRUPT;
1104 }
1105
1106+ if (irq == -1)
1107+ arc_pmu->pmu.capabilities |= PERF_PMU_CAP_NO_INTERRUPT;
1108+
1109 /*
1110 * perf parser doesn't really like '-' symbol in events name, so let's
1111 * use '_' in arc pct name as it goes to kernel PMU event prefix.
1112diff --git a/arch/arc/kernel/stacktrace.c b/arch/arc/kernel/stacktrace.c
1113index 1e440bb..fc3054c 100644
1114--- a/arch/arc/kernel/stacktrace.c
1115+++ b/arch/arc/kernel/stacktrace.c
1116@@ -38,15 +38,15 @@
1117
1118 #ifdef CONFIG_ARC_DW2_UNWIND
1119
1120-static void seed_unwind_frame_info(struct task_struct *tsk,
1121- struct pt_regs *regs,
1122- struct unwind_frame_info *frame_info)
1123+static int
1124+seed_unwind_frame_info(struct task_struct *tsk, struct pt_regs *regs,
1125+ struct unwind_frame_info *frame_info)
1126 {
1127 /*
1128 * synchronous unwinding (e.g. dump_stack)
1129 * - uses current values of SP and friends
1130 */
1131- if (tsk == NULL && regs == NULL) {
1132+ if (regs == NULL && (tsk == NULL || tsk == current)) {
1133 unsigned long fp, sp, blink, ret;
1134 frame_info->task = current;
1135
1136@@ -65,11 +65,15 @@ static void seed_unwind_frame_info(struct task_struct *tsk,
1137 frame_info->call_frame = 0;
1138 } else if (regs == NULL) {
1139 /*
1140- * Asynchronous unwinding of sleeping task
1141- * - Gets SP etc from task's pt_regs (saved bottom of kernel
1142- * mode stack of task)
1143+ * Asynchronous unwinding of a likely sleeping task
1144+ * - first ensure it is actually sleeping
1145+ * - if so, it will be in __switch_to, kernel mode SP of task
1146+ * is safe-kept and BLINK at a well known location in there
1147 */
1148
1149+ if (tsk->state == TASK_RUNNING)
1150+ return -1;
1151+
1152 frame_info->task = tsk;
1153
1154 frame_info->regs.r27 = TSK_K_FP(tsk);
1155@@ -103,6 +107,8 @@ static void seed_unwind_frame_info(struct task_struct *tsk,
1156 frame_info->regs.r63 = regs->ret;
1157 frame_info->call_frame = 0;
1158 }
1159+
1160+ return 0;
1161 }
1162
1163 #endif
1164@@ -112,11 +118,12 @@ arc_unwind_core(struct task_struct *tsk, struct pt_regs *regs,
1165 int (*consumer_fn) (unsigned int, void *), void *arg)
1166 {
1167 #ifdef CONFIG_ARC_DW2_UNWIND
1168- int ret = 0;
1169+ int ret = 0, cnt = 0;
1170 unsigned int address;
1171 struct unwind_frame_info frame_info;
1172
1173- seed_unwind_frame_info(tsk, regs, &frame_info);
1174+ if (seed_unwind_frame_info(tsk, regs, &frame_info))
1175+ return 0;
1176
1177 while (1) {
1178 address = UNW_PC(&frame_info);
1179@@ -132,6 +139,11 @@ arc_unwind_core(struct task_struct *tsk, struct pt_regs *regs,
1180 break;
1181
1182 frame_info.regs.r63 = frame_info.regs.r31;
1183+
1184+ if (cnt++ > 128) {
1185+ printk("unwinder looping too long, aborting !\n");
1186+ return 0;
1187+ }
1188 }
1189
1190 return address; /* return the last address it saw */
1191diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
1192index 05c9bbf..9aa8871 100644
1193--- a/arch/arm/Kconfig
1194+++ b/arch/arm/Kconfig
1195@@ -507,8 +507,10 @@ config ARCH_S3C24XX
1196 select HAVE_S3C2410_WATCHDOG if WATCHDOG
1197 select HAVE_S3C_RTC if RTC_CLASS
1198 select NEED_MACH_IO_H
1199+ select S3C2410_WATCHDOG
1200 select SAMSUNG_ATAGS
1201 select USE_OF
1202+ select WATCHDOG
1203 help
1204 Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443
1205 and S3C2450 SoCs based systems, such as the Simtec Electronics BAST
1206diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
1207index 93dffed..cbe1262 100644
1208--- a/arch/arm/boot/compressed/head.S
1209+++ b/arch/arm/boot/compressed/head.S
1210@@ -1142,9 +1142,9 @@ __armv4_mmu_cache_off:
1211 __armv7_mmu_cache_off:
1212 mrc p15, 0, r0, c1, c0
1213 #ifdef CONFIG_MMU
1214- bic r0, r0, #0x000d
1215+ bic r0, r0, #0x0005
1216 #else
1217- bic r0, r0, #0x000c
1218+ bic r0, r0, #0x0004
1219 #endif
1220 mcr p15, 0, r0, c1, c0 @ turn MMU and cache off
1221 mov r12, lr
1222diff --git a/arch/arm/boot/dts/armada-388-helios4.dts b/arch/arm/boot/dts/armada-388-helios4.dts
1223index 705adfa..a947580 100644
1224--- a/arch/arm/boot/dts/armada-388-helios4.dts
1225+++ b/arch/arm/boot/dts/armada-388-helios4.dts
1226@@ -70,6 +70,9 @@
1227
1228 system-leds {
1229 compatible = "gpio-leds";
1230+ pinctrl-names = "default";
1231+ pinctrl-0 = <&helios_system_led_pins>;
1232+
1233 status-led {
1234 label = "helios4:green:status";
1235 gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
1236@@ -86,6 +89,9 @@
1237
1238 io-leds {
1239 compatible = "gpio-leds";
1240+ pinctrl-names = "default";
1241+ pinctrl-0 = <&helios_io_led_pins>;
1242+
1243 sata1-led {
1244 label = "helios4:green:ata1";
1245 gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
1246@@ -121,11 +127,15 @@
1247 fan1: j10-pwm {
1248 compatible = "pwm-fan";
1249 pwms = <&gpio1 9 40000>; /* Target freq:25 kHz */
1250+ pinctrl-names = "default";
1251+ pinctrl-0 = <&helios_fan1_pins>;
1252 };
1253
1254 fan2: j17-pwm {
1255 compatible = "pwm-fan";
1256 pwms = <&gpio1 23 40000>; /* Target freq:25 kHz */
1257+ pinctrl-names = "default";
1258+ pinctrl-0 = <&helios_fan2_pins>;
1259 };
1260
1261 usb2_phy: usb2-phy {
1262@@ -291,16 +301,22 @@
1263 "mpp39", "mpp40";
1264 marvell,function = "sd0";
1265 };
1266- helios_led_pins: helios-led-pins {
1267- marvell,pins = "mpp24", "mpp25",
1268- "mpp49", "mpp50",
1269+ helios_system_led_pins: helios-system-led-pins {
1270+ marvell,pins = "mpp24", "mpp25";
1271+ marvell,function = "gpio";
1272+ };
1273+ helios_io_led_pins: helios-io-led-pins {
1274+ marvell,pins = "mpp49", "mpp50",
1275 "mpp52", "mpp53",
1276 "mpp54";
1277 marvell,function = "gpio";
1278 };
1279- helios_fan_pins: helios-fan-pins {
1280- marvell,pins = "mpp41", "mpp43",
1281- "mpp48", "mpp55";
1282+ helios_fan1_pins: helios_fan1_pins {
1283+ marvell,pins = "mpp41", "mpp43";
1284+ marvell,function = "gpio";
1285+ };
1286+ helios_fan2_pins: helios_fan2_pins {
1287+ marvell,pins = "mpp48", "mpp55";
1288 marvell,function = "gpio";
1289 };
1290 microsom_spi1_cs_pins: spi1-cs-pins {
1291diff --git a/arch/arm/boot/dts/armada-xp-98dx3236.dtsi b/arch/arm/boot/dts/armada-xp-98dx3236.dtsi
1292index 267d0c1..30abb4b 100644
1293--- a/arch/arm/boot/dts/armada-xp-98dx3236.dtsi
1294+++ b/arch/arm/boot/dts/armada-xp-98dx3236.dtsi
1295@@ -266,11 +266,6 @@
1296 reg = <0x11000 0x100>;
1297 };
1298
1299-&i2c1 {
1300- compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
1301- reg = <0x11100 0x100>;
1302-};
1303-
1304 &mpic {
1305 reg = <0x20a00 0x2d0>, <0x21070 0x58>;
1306 };
1307diff --git a/arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts b/arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts
1308index 682f729..c58230f 100644
1309--- a/arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts
1310+++ b/arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts
1311@@ -81,11 +81,6 @@
1312 status = "okay";
1313 };
1314
1315-&vuart {
1316- // VUART Host Console
1317- status = "okay";
1318-};
1319-
1320 &uart1 {
1321 // Host Console
1322 status = "okay";
1323diff --git a/arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts b/arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts
1324index 22dade6..d1dbe3b 100644
1325--- a/arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts
1326+++ b/arch/arm/boot/dts/aspeed-bmc-intel-s2600wf.dts
1327@@ -22,9 +22,9 @@
1328 #size-cells = <1>;
1329 ranges;
1330
1331- vga_memory: framebuffer@7f000000 {
1332+ vga_memory: framebuffer@9f000000 {
1333 no-map;
1334- reg = <0x7f000000 0x01000000>;
1335+ reg = <0x9f000000 0x01000000>; /* 16M */
1336 };
1337 };
1338
1339diff --git a/arch/arm/boot/dts/aspeed-g4.dtsi b/arch/arm/boot/dts/aspeed-g4.dtsi
1340index dffb595..679d04d 100644
1341--- a/arch/arm/boot/dts/aspeed-g4.dtsi
1342+++ b/arch/arm/boot/dts/aspeed-g4.dtsi
1343@@ -371,6 +371,7 @@
1344 compatible = "aspeed,ast2400-ibt-bmc";
1345 reg = <0xc0 0x18>;
1346 interrupts = <8>;
1347+ clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
1348 status = "disabled";
1349 };
1350 };
1351diff --git a/arch/arm/boot/dts/aspeed-g5.dtsi b/arch/arm/boot/dts/aspeed-g5.dtsi
1352index e8feb8b..412c96b 100644
1353--- a/arch/arm/boot/dts/aspeed-g5.dtsi
1354+++ b/arch/arm/boot/dts/aspeed-g5.dtsi
1355@@ -464,6 +464,7 @@
1356 compatible = "aspeed,ast2500-ibt-bmc";
1357 reg = <0xc0 0x18>;
1358 interrupts = <8>;
1359+ clocks = <&syscon ASPEED_CLK_GATE_LCLK>;
1360 status = "disabled";
1361 };
1362 };
1363diff --git a/arch/arm/boot/dts/at91-sama5d3_xplained.dts b/arch/arm/boot/dts/at91-sama5d3_xplained.dts
1364index 61f068a..400eaf6 100644
1365--- a/arch/arm/boot/dts/at91-sama5d3_xplained.dts
1366+++ b/arch/arm/boot/dts/at91-sama5d3_xplained.dts
1367@@ -242,6 +242,11 @@
1368 atmel,pins =
1369 <AT91_PIOE 9 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>; /* PE9, conflicts with A9 */
1370 };
1371+ pinctrl_usb_default: usb_default {
1372+ atmel,pins =
1373+ <AT91_PIOE 3 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
1374+ AT91_PIOE 4 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
1375+ };
1376 };
1377 };
1378 };
1379@@ -259,6 +264,8 @@
1380 &pioE 3 GPIO_ACTIVE_LOW
1381 &pioE 4 GPIO_ACTIVE_LOW
1382 >;
1383+ pinctrl-names = "default";
1384+ pinctrl-0 = <&pinctrl_usb_default>;
1385 status = "okay";
1386 };
1387
1388diff --git a/arch/arm/boot/dts/at91-sama5d4_xplained.dts b/arch/arm/boot/dts/at91-sama5d4_xplained.dts
1389index fdfc37d..1d10106 100644
1390--- a/arch/arm/boot/dts/at91-sama5d4_xplained.dts
1391+++ b/arch/arm/boot/dts/at91-sama5d4_xplained.dts
1392@@ -133,6 +133,11 @@
1393 atmel,pins =
1394 <AT91_PIOE 31 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
1395 };
1396+ pinctrl_usb_default: usb_default {
1397+ atmel,pins =
1398+ <AT91_PIOE 11 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
1399+ AT91_PIOE 14 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
1400+ };
1401 pinctrl_key_gpio: key_gpio_0 {
1402 atmel,pins =
1403 <AT91_PIOE 8 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
1404@@ -158,6 +163,8 @@
1405 &pioE 11 GPIO_ACTIVE_HIGH
1406 &pioE 14 GPIO_ACTIVE_HIGH
1407 >;
1408+ pinctrl-names = "default";
1409+ pinctrl-0 = <&pinctrl_usb_default>;
1410 status = "okay";
1411 };
1412
1413diff --git a/arch/arm/boot/dts/at91sam9rl.dtsi b/arch/arm/boot/dts/at91sam9rl.dtsi
1414index ea024e4..0121bb0 100644
1415--- a/arch/arm/boot/dts/at91sam9rl.dtsi
1416+++ b/arch/arm/boot/dts/at91sam9rl.dtsi
1417@@ -278,23 +278,26 @@
1418 atmel,adc-use-res = "highres";
1419
1420 trigger0 {
1421- trigger-name = "timer-counter-0";
1422+ trigger-name = "external-rising";
1423 trigger-value = <0x1>;
1424+ trigger-external;
1425 };
1426+
1427 trigger1 {
1428- trigger-name = "timer-counter-1";
1429- trigger-value = <0x3>;
1430+ trigger-name = "external-falling";
1431+ trigger-value = <0x2>;
1432+ trigger-external;
1433 };
1434
1435 trigger2 {
1436- trigger-name = "timer-counter-2";
1437- trigger-value = <0x5>;
1438+ trigger-name = "external-any";
1439+ trigger-value = <0x3>;
1440+ trigger-external;
1441 };
1442
1443 trigger3 {
1444- trigger-name = "external";
1445- trigger-value = <0x13>;
1446- trigger-external;
1447+ trigger-name = "continuous";
1448+ trigger-value = <0x6>;
1449 };
1450 };
1451
1452diff --git a/arch/arm/boot/dts/dra76x.dtsi b/arch/arm/boot/dts/dra76x.dtsi
1453index 9f6fbe4..859e438 100644
1454--- a/arch/arm/boot/dts/dra76x.dtsi
1455+++ b/arch/arm/boot/dts/dra76x.dtsi
1456@@ -32,8 +32,8 @@
1457 interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
1458 <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
1459 interrupt-names = "int0", "int1";
1460- clocks = <&mcan_clk>, <&l3_iclk_div>;
1461- clock-names = "cclk", "hclk";
1462+ clocks = <&l3_iclk_div>, <&mcan_clk>;
1463+ clock-names = "hclk", "cclk";
1464 bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
1465 };
1466 };
1467diff --git a/arch/arm/boot/dts/exynos3250-artik5.dtsi b/arch/arm/boot/dts/exynos3250-artik5.dtsi
1468index dee35e3..69d134d 100644
1469--- a/arch/arm/boot/dts/exynos3250-artik5.dtsi
1470+++ b/arch/arm/boot/dts/exynos3250-artik5.dtsi
1471@@ -75,7 +75,7 @@
1472 s2mps14_pmic@66 {
1473 compatible = "samsung,s2mps14-pmic";
1474 interrupt-parent = <&gpx3>;
1475- interrupts = <5 IRQ_TYPE_NONE>;
1476+ interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
1477 pinctrl-names = "default";
1478 pinctrl-0 = <&s2mps14_irq>;
1479 reg = <0x66>;
1480diff --git a/arch/arm/boot/dts/exynos3250-monk.dts b/arch/arm/boot/dts/exynos3250-monk.dts
1481index 248bd37..a23a874 100644
1482--- a/arch/arm/boot/dts/exynos3250-monk.dts
1483+++ b/arch/arm/boot/dts/exynos3250-monk.dts
1484@@ -195,7 +195,7 @@
1485 s2mps14_pmic@66 {
1486 compatible = "samsung,s2mps14-pmic";
1487 interrupt-parent = <&gpx0>;
1488- interrupts = <7 IRQ_TYPE_NONE>;
1489+ interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
1490 reg = <0x66>;
1491 wakeup-source;
1492
1493diff --git a/arch/arm/boot/dts/exynos3250-rinato.dts b/arch/arm/boot/dts/exynos3250-rinato.dts
1494index 86c26a4..468932f 100644
1495--- a/arch/arm/boot/dts/exynos3250-rinato.dts
1496+++ b/arch/arm/boot/dts/exynos3250-rinato.dts
1497@@ -260,7 +260,7 @@
1498 s2mps14_pmic@66 {
1499 compatible = "samsung,s2mps14-pmic";
1500 interrupt-parent = <&gpx0>;
1501- interrupts = <7 IRQ_TYPE_NONE>;
1502+ interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
1503 reg = <0x66>;
1504 wakeup-source;
1505
1506diff --git a/arch/arm/boot/dts/exynos5250-spring.dts b/arch/arm/boot/dts/exynos5250-spring.dts
1507index 3d50192..2355c53 100644
1508--- a/arch/arm/boot/dts/exynos5250-spring.dts
1509+++ b/arch/arm/boot/dts/exynos5250-spring.dts
1510@@ -108,7 +108,7 @@
1511 compatible = "samsung,s5m8767-pmic";
1512 reg = <0x66>;
1513 interrupt-parent = <&gpx3>;
1514- interrupts = <2 IRQ_TYPE_NONE>;
1515+ interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
1516 pinctrl-names = "default";
1517 pinctrl-0 = <&s5m8767_irq &s5m8767_dvs &s5m8767_ds>;
1518 wakeup-source;
1519diff --git a/arch/arm/boot/dts/exynos5410-odroidxu.dts b/arch/arm/boot/dts/exynos5410-odroidxu.dts
1520index e0db251..f68baaf 100644
1521--- a/arch/arm/boot/dts/exynos5410-odroidxu.dts
1522+++ b/arch/arm/boot/dts/exynos5410-odroidxu.dts
1523@@ -327,6 +327,8 @@
1524 regulator-name = "vddq_lcd";
1525 regulator-min-microvolt = <1800000>;
1526 regulator-max-microvolt = <1800000>;
1527+ /* Supplies also GPK and GPJ */
1528+ regulator-always-on;
1529 };
1530
1531 ldo8_reg: LDO8 {
1532@@ -637,11 +639,11 @@
1533 };
1534
1535 &usbdrd_dwc3_0 {
1536- dr_mode = "host";
1537+ dr_mode = "peripheral";
1538 };
1539
1540 &usbdrd_dwc3_1 {
1541- dr_mode = "peripheral";
1542+ dr_mode = "host";
1543 };
1544
1545 &usbdrd3_0 {
1546diff --git a/arch/arm/boot/dts/exynos5410-pinctrl.dtsi b/arch/arm/boot/dts/exynos5410-pinctrl.dtsi
1547index 369a8a7..481ee99 100644
1548--- a/arch/arm/boot/dts/exynos5410-pinctrl.dtsi
1549+++ b/arch/arm/boot/dts/exynos5410-pinctrl.dtsi
1550@@ -560,6 +560,34 @@
1551 interrupt-controller;
1552 #interrupt-cells = <2>;
1553 };
1554+
1555+ usb3_1_oc: usb3-1-oc {
1556+ samsung,pins = "gpk2-4", "gpk2-5";
1557+ samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
1558+ samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
1559+ samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
1560+ };
1561+
1562+ usb3_1_vbusctrl: usb3-1-vbusctrl {
1563+ samsung,pins = "gpk2-6", "gpk2-7";
1564+ samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
1565+ samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
1566+ samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
1567+ };
1568+
1569+ usb3_0_oc: usb3-0-oc {
1570+ samsung,pins = "gpk3-0", "gpk3-1";
1571+ samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
1572+ samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
1573+ samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
1574+ };
1575+
1576+ usb3_0_vbusctrl: usb3-0-vbusctrl {
1577+ samsung,pins = "gpk3-2", "gpk3-3";
1578+ samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
1579+ samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
1580+ samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
1581+ };
1582 };
1583
1584 &pinctrl_2 {
1585diff --git a/arch/arm/boot/dts/exynos5410.dtsi b/arch/arm/boot/dts/exynos5410.dtsi
1586index e6f78b1..d077373 100644
1587--- a/arch/arm/boot/dts/exynos5410.dtsi
1588+++ b/arch/arm/boot/dts/exynos5410.dtsi
1589@@ -398,6 +398,8 @@
1590 &usbdrd3_0 {
1591 clocks = <&clock CLK_USBD300>;
1592 clock-names = "usbdrd30";
1593+ pinctrl-names = "default";
1594+ pinctrl-0 = <&usb3_0_oc>, <&usb3_0_vbusctrl>;
1595 };
1596
1597 &usbdrd_phy0 {
1598@@ -409,6 +411,8 @@
1599 &usbdrd3_1 {
1600 clocks = <&clock CLK_USBD301>;
1601 clock-names = "usbdrd30";
1602+ pinctrl-names = "default";
1603+ pinctrl-0 = <&usb3_1_oc>, <&usb3_1_vbusctrl>;
1604 };
1605
1606 &usbdrd_dwc3_1 {
1607diff --git a/arch/arm/boot/dts/exynos5420-arndale-octa.dts b/arch/arm/boot/dts/exynos5420-arndale-octa.dts
1608index 592d7b4..53bf988 100644
1609--- a/arch/arm/boot/dts/exynos5420-arndale-octa.dts
1610+++ b/arch/arm/boot/dts/exynos5420-arndale-octa.dts
1611@@ -349,7 +349,7 @@
1612 reg = <0x66>;
1613
1614 interrupt-parent = <&gpx3>;
1615- interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
1616+ interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
1617 pinctrl-names = "default";
1618 pinctrl-0 = <&s2mps11_irq>;
1619
1620diff --git a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
1621index 829147e..9e64a4a 100644
1622--- a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
1623+++ b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
1624@@ -141,7 +141,7 @@
1625 samsung,s2mps11-acokb-ground;
1626
1627 interrupt-parent = <&gpx0>;
1628- interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
1629+ interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
1630 pinctrl-names = "default";
1631 pinctrl-0 = <&s2mps11_irq>;
1632
1633diff --git a/arch/arm/boot/dts/imx50-evk.dts b/arch/arm/boot/dts/imx50-evk.dts
1634index a25da41..907339b 100644
1635--- a/arch/arm/boot/dts/imx50-evk.dts
1636+++ b/arch/arm/boot/dts/imx50-evk.dts
1637@@ -59,7 +59,7 @@
1638 MX50_PAD_CSPI_MISO__CSPI_MISO 0x00
1639 MX50_PAD_CSPI_MOSI__CSPI_MOSI 0x00
1640 MX50_PAD_CSPI_SS0__GPIO4_11 0xc4
1641- MX50_PAD_ECSPI1_MOSI__CSPI_SS1 0xf4
1642+ MX50_PAD_ECSPI1_MOSI__GPIO4_13 0x84
1643 >;
1644 };
1645
1646diff --git a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
1647index 1a9a9d9..14d6fec 100644
1648--- a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
1649+++ b/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
1650@@ -273,7 +273,7 @@
1651
1652 /* VDD_AUD_1P8: Audio codec */
1653 reg_aud_1p8v: ldo3 {
1654- regulator-name = "vdd1p8";
1655+ regulator-name = "vdd1p8a";
1656 regulator-min-microvolt = <1800000>;
1657 regulator-max-microvolt = <1800000>;
1658 regulator-boot-on;
1659diff --git a/arch/arm/boot/dts/imx6qdl-kontron-samx6i.dtsi b/arch/arm/boot/dts/imx6qdl-kontron-samx6i.dtsi
1660index 81c7ebb..eea317b 100644
1661--- a/arch/arm/boot/dts/imx6qdl-kontron-samx6i.dtsi
1662+++ b/arch/arm/boot/dts/imx6qdl-kontron-samx6i.dtsi
1663@@ -167,7 +167,7 @@
1664 i2c-gpio,delay-us = <2>; /* ~100 kHz */
1665 #address-cells = <1>;
1666 #size-cells = <0>;
1667- status = "disabld";
1668+ status = "disabled";
1669 };
1670
1671 i2c_cam: i2c-gpio-cam {
1672@@ -179,7 +179,7 @@
1673 i2c-gpio,delay-us = <2>; /* ~100 kHz */
1674 #address-cells = <1>;
1675 #size-cells = <0>;
1676- status = "disabld";
1677+ status = "disabled";
1678 };
1679 };
1680
1681@@ -551,7 +551,7 @@
1682
1683 pinctrl_i2c3: i2c3grp {
1684 fsl,pins = <
1685- MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1
1686+ MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b8b1
1687 MX6QDL_PAD_GPIO_16__I2C3_SDA 0x4001b8b1
1688 >;
1689 };
1690diff --git a/arch/arm/boot/dts/imx6qdl-udoo.dtsi b/arch/arm/boot/dts/imx6qdl-udoo.dtsi
1691index 776bfc7..16672cb 100644
1692--- a/arch/arm/boot/dts/imx6qdl-udoo.dtsi
1693+++ b/arch/arm/boot/dts/imx6qdl-udoo.dtsi
1694@@ -98,7 +98,7 @@
1695 &fec {
1696 pinctrl-names = "default";
1697 pinctrl-0 = <&pinctrl_enet>;
1698- phy-mode = "rgmii";
1699+ phy-mode = "rgmii-id";
1700 status = "okay";
1701 };
1702
1703diff --git a/arch/arm/boot/dts/imx6qdl-wandboard-revd1.dtsi b/arch/arm/boot/dts/imx6qdl-wandboard-revd1.dtsi
1704index 9390979..b9b698f 100644
1705--- a/arch/arm/boot/dts/imx6qdl-wandboard-revd1.dtsi
1706+++ b/arch/arm/boot/dts/imx6qdl-wandboard-revd1.dtsi
1707@@ -166,7 +166,6 @@
1708 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030
1709 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030
1710 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030
1711- MX6QDL_PAD_GPIO_6__ENET_IRQ 0x000b1
1712 >;
1713 };
1714
1715diff --git a/arch/arm/boot/dts/lpc32xx.dtsi b/arch/arm/boot/dts/lpc32xx.dtsi
1716index 7b7ec7b..824393e 100644
1717--- a/arch/arm/boot/dts/lpc32xx.dtsi
1718+++ b/arch/arm/boot/dts/lpc32xx.dtsi
1719@@ -329,9 +329,6 @@
1720
1721 clocks = <&xtal_32k>, <&xtal>;
1722 clock-names = "xtal_32k", "xtal";
1723-
1724- assigned-clocks = <&clk LPC32XX_CLK_HCLK_PLL>;
1725- assigned-clock-rates = <208000000>;
1726 };
1727 };
1728
1729diff --git a/arch/arm/boot/dts/meson8b-odroidc1.dts b/arch/arm/boot/dts/meson8b-odroidc1.dts
1730index a24eccc..0f9c711 100644
1731--- a/arch/arm/boot/dts/meson8b-odroidc1.dts
1732+++ b/arch/arm/boot/dts/meson8b-odroidc1.dts
1733@@ -219,7 +219,7 @@
1734 reg = <0>;
1735
1736 reset-assert-us = <10000>;
1737- reset-deassert-us = <30000>;
1738+ reset-deassert-us = <80000>;
1739 reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>;
1740
1741 interrupt-parent = <&gpio_intc>;
1742diff --git a/arch/arm/boot/dts/meson8m2-mxiii-plus.dts b/arch/arm/boot/dts/meson8m2-mxiii-plus.dts
1743index d54477b..84b6ed5 100644
1744--- a/arch/arm/boot/dts/meson8m2-mxiii-plus.dts
1745+++ b/arch/arm/boot/dts/meson8m2-mxiii-plus.dts
1746@@ -83,7 +83,7 @@
1747 reg = <0>;
1748
1749 reset-assert-us = <10000>;
1750- reset-deassert-us = <30000>;
1751+ reset-deassert-us = <80000>;
1752 reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>;
1753 };
1754 };
1755diff --git a/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts b/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts
1756index 2b760f9..5375c66 100644
1757--- a/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts
1758+++ b/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts
1759@@ -192,6 +192,7 @@
1760 fixed-link {
1761 speed = <1000>;
1762 full-duplex;
1763+ pause;
1764 };
1765 };
1766 };
1767diff --git a/arch/arm/boot/dts/omap4-panda-es.dts b/arch/arm/boot/dts/omap4-panda-es.dts
1768index 9dd307b..468ad1b 100644
1769--- a/arch/arm/boot/dts/omap4-panda-es.dts
1770+++ b/arch/arm/boot/dts/omap4-panda-es.dts
1771@@ -46,7 +46,7 @@
1772
1773 button_pins: pinmux_button_pins {
1774 pinctrl-single,pins = <
1775- OMAP4_IOPAD(0x11b, PIN_INPUT_PULLUP | MUX_MODE3) /* gpio_113 */
1776+ OMAP4_IOPAD(0x0fc, PIN_INPUT_PULLUP | MUX_MODE3) /* gpio_113 */
1777 >;
1778 };
1779 };
1780diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
1781index e5506ab..9048520 100644
1782--- a/arch/arm/boot/dts/omap4.dtsi
1783+++ b/arch/arm/boot/dts/omap4.dtsi
1784@@ -328,7 +328,7 @@
1785 status = "disabled";
1786 };
1787
1788- target-module@56000000 {
1789+ sgx_module: target-module@56000000 {
1790 compatible = "ti,sysc-omap4", "ti,sysc";
1791 reg = <0x5600fe00 0x4>,
1792 <0x5600fe10 0x4>;
1793diff --git a/arch/arm/boot/dts/omap443x.dtsi b/arch/arm/boot/dts/omap443x.dtsi
1794index cbcdcb4..6e320ef 100644
1795--- a/arch/arm/boot/dts/omap443x.dtsi
1796+++ b/arch/arm/boot/dts/omap443x.dtsi
1797@@ -33,10 +33,12 @@
1798 };
1799
1800 ocp {
1801+ /* 4430 has only gpio_86 tshut and no talert interrupt */
1802 bandgap: bandgap@4a002260 {
1803 reg = <0x4a002260 0x4
1804 0x4a00232C 0x4>;
1805 compatible = "ti,omap4430-bandgap";
1806+ gpios = <&gpio3 22 GPIO_ACTIVE_HIGH>;
1807
1808 #thermal-sensor-cells = <0>;
1809 };
1810@@ -74,3 +76,13 @@
1811 };
1812
1813 /include/ "omap443x-clocks.dtsi"
1814+
1815+/*
1816+ * Use dpll_per for sgx at 153.6MHz like droid4 stock v3.0.8 Android kernel
1817+ */
1818+&sgx_module {
1819+ assigned-clocks = <&l3_gfx_clkctrl OMAP4_GPU_CLKCTRL 24>,
1820+ <&dpll_per_m7x2_ck>;
1821+ assigned-clock-rates = <0>, <153600000>;
1822+ assigned-clock-parents = <&dpll_per_m7x2_ck>;
1823+};
1824diff --git a/arch/arm/boot/dts/picoxcell-pc3x2.dtsi b/arch/arm/boot/dts/picoxcell-pc3x2.dtsi
1825index 5ae8607..3fcc86d 100644
1826--- a/arch/arm/boot/dts/picoxcell-pc3x2.dtsi
1827+++ b/arch/arm/boot/dts/picoxcell-pc3x2.dtsi
1828@@ -45,18 +45,21 @@
1829 emac: gem@30000 {
1830 compatible = "cadence,gem";
1831 reg = <0x30000 0x10000>;
1832+ interrupt-parent = <&vic0>;
1833 interrupts = <31>;
1834 };
1835
1836 dmac1: dmac@40000 {
1837 compatible = "snps,dw-dmac";
1838 reg = <0x40000 0x10000>;
1839+ interrupt-parent = <&vic0>;
1840 interrupts = <25>;
1841 };
1842
1843 dmac2: dmac@50000 {
1844 compatible = "snps,dw-dmac";
1845 reg = <0x50000 0x10000>;
1846+ interrupt-parent = <&vic0>;
1847 interrupts = <26>;
1848 };
1849
1850@@ -234,6 +237,7 @@
1851 axi2pico@c0000000 {
1852 compatible = "picochip,axi2pico-pc3x2";
1853 reg = <0xc0000000 0x10000>;
1854+ interrupt-parent = <&vic0>;
1855 interrupts = <13 14 15 16 17 18 19 20 21>;
1856 };
1857 };
1858diff --git a/arch/arm/boot/dts/s5pv210.dtsi b/arch/arm/boot/dts/s5pv210.dtsi
1859index 2ad642f..61822af 100644
1860--- a/arch/arm/boot/dts/s5pv210.dtsi
1861+++ b/arch/arm/boot/dts/s5pv210.dtsi
1862@@ -52,34 +52,26 @@
1863 };
1864 };
1865
1866+ xxti: oscillator-0 {
1867+ compatible = "fixed-clock";
1868+ clock-frequency = <0>;
1869+ clock-output-names = "xxti";
1870+ #clock-cells = <0>;
1871+ };
1872+
1873+ xusbxti: oscillator-1 {
1874+ compatible = "fixed-clock";
1875+ clock-frequency = <0>;
1876+ clock-output-names = "xusbxti";
1877+ #clock-cells = <0>;
1878+ };
1879+
1880 soc {
1881 compatible = "simple-bus";
1882 #address-cells = <1>;
1883 #size-cells = <1>;
1884 ranges;
1885
1886- external-clocks {
1887- compatible = "simple-bus";
1888- #address-cells = <1>;
1889- #size-cells = <0>;
1890-
1891- xxti: oscillator@0 {
1892- compatible = "fixed-clock";
1893- reg = <0>;
1894- clock-frequency = <0>;
1895- clock-output-names = "xxti";
1896- #clock-cells = <0>;
1897- };
1898-
1899- xusbxti: oscillator@1 {
1900- compatible = "fixed-clock";
1901- reg = <1>;
1902- clock-frequency = <0>;
1903- clock-output-names = "xusbxti";
1904- #clock-cells = <0>;
1905- };
1906- };
1907-
1908 onenand: onenand@b0600000 {
1909 compatible = "samsung,s5pv210-onenand";
1910 reg = <0xb0600000 0x2000>,
1911@@ -100,19 +92,16 @@
1912 };
1913
1914 clocks: clock-controller@e0100000 {
1915- compatible = "samsung,s5pv210-clock", "simple-bus";
1916+ compatible = "samsung,s5pv210-clock";
1917 reg = <0xe0100000 0x10000>;
1918 clock-names = "xxti", "xusbxti";
1919 clocks = <&xxti>, <&xusbxti>;
1920 #clock-cells = <1>;
1921- #address-cells = <1>;
1922- #size-cells = <1>;
1923- ranges;
1924+ };
1925
1926- pmu_syscon: syscon@e0108000 {
1927- compatible = "samsung-s5pv210-pmu", "syscon";
1928- reg = <0xe0108000 0x8000>;
1929- };
1930+ pmu_syscon: syscon@e0108000 {
1931+ compatible = "samsung-s5pv210-pmu", "syscon";
1932+ reg = <0xe0108000 0x8000>;
1933 };
1934
1935 pinctrl0: pinctrl@e0200000 {
1936@@ -128,35 +117,28 @@
1937 };
1938 };
1939
1940- amba {
1941- #address-cells = <1>;
1942- #size-cells = <1>;
1943- compatible = "simple-bus";
1944- ranges;
1945-
1946- pdma0: dma@e0900000 {
1947- compatible = "arm,pl330", "arm,primecell";
1948- reg = <0xe0900000 0x1000>;
1949- interrupt-parent = <&vic0>;
1950- interrupts = <19>;
1951- clocks = <&clocks CLK_PDMA0>;
1952- clock-names = "apb_pclk";
1953- #dma-cells = <1>;
1954- #dma-channels = <8>;
1955- #dma-requests = <32>;
1956- };
1957+ pdma0: dma@e0900000 {
1958+ compatible = "arm,pl330", "arm,primecell";
1959+ reg = <0xe0900000 0x1000>;
1960+ interrupt-parent = <&vic0>;
1961+ interrupts = <19>;
1962+ clocks = <&clocks CLK_PDMA0>;
1963+ clock-names = "apb_pclk";
1964+ #dma-cells = <1>;
1965+ #dma-channels = <8>;
1966+ #dma-requests = <32>;
1967+ };
1968
1969- pdma1: dma@e0a00000 {
1970- compatible = "arm,pl330", "arm,primecell";
1971- reg = <0xe0a00000 0x1000>;
1972- interrupt-parent = <&vic0>;
1973- interrupts = <20>;
1974- clocks = <&clocks CLK_PDMA1>;
1975- clock-names = "apb_pclk";
1976- #dma-cells = <1>;
1977- #dma-channels = <8>;
1978- #dma-requests = <32>;
1979- };
1980+ pdma1: dma@e0a00000 {
1981+ compatible = "arm,pl330", "arm,primecell";
1982+ reg = <0xe0a00000 0x1000>;
1983+ interrupt-parent = <&vic0>;
1984+ interrupts = <20>;
1985+ clocks = <&clocks CLK_PDMA1>;
1986+ clock-names = "apb_pclk";
1987+ #dma-cells = <1>;
1988+ #dma-channels = <8>;
1989+ #dma-requests = <32>;
1990 };
1991
1992 spi0: spi@e1300000 {
1993@@ -229,43 +211,36 @@
1994 status = "disabled";
1995 };
1996
1997- audio-subsystem {
1998- compatible = "samsung,s5pv210-audss", "simple-bus";
1999- #address-cells = <1>;
2000- #size-cells = <1>;
2001- ranges;
2002-
2003- clk_audss: clock-controller@eee10000 {
2004- compatible = "samsung,s5pv210-audss-clock";
2005- reg = <0xeee10000 0x1000>;
2006- clock-names = "hclk", "xxti",
2007- "fout_epll",
2008- "sclk_audio0";
2009- clocks = <&clocks DOUT_HCLKP>, <&xxti>,
2010- <&clocks FOUT_EPLL>,
2011- <&clocks SCLK_AUDIO0>;
2012- #clock-cells = <1>;
2013- };
2014+ clk_audss: clock-controller@eee10000 {
2015+ compatible = "samsung,s5pv210-audss-clock";
2016+ reg = <0xeee10000 0x1000>;
2017+ clock-names = "hclk", "xxti",
2018+ "fout_epll",
2019+ "sclk_audio0";
2020+ clocks = <&clocks DOUT_HCLKP>, <&xxti>,
2021+ <&clocks FOUT_EPLL>,
2022+ <&clocks SCLK_AUDIO0>;
2023+ #clock-cells = <1>;
2024+ };
2025
2026- i2s0: i2s@eee30000 {
2027- compatible = "samsung,s5pv210-i2s";
2028- reg = <0xeee30000 0x1000>;
2029- interrupt-parent = <&vic2>;
2030- interrupts = <16>;
2031- dma-names = "rx", "tx", "tx-sec";
2032- dmas = <&pdma1 9>, <&pdma1 10>, <&pdma1 11>;
2033- clock-names = "iis",
2034- "i2s_opclk0",
2035- "i2s_opclk1";
2036- clocks = <&clk_audss CLK_I2S>,
2037- <&clk_audss CLK_I2S>,
2038- <&clk_audss CLK_DOUT_AUD_BUS>;
2039- samsung,idma-addr = <0xc0010000>;
2040- pinctrl-names = "default";
2041- pinctrl-0 = <&i2s0_bus>;
2042- #sound-dai-cells = <0>;
2043- status = "disabled";
2044- };
2045+ i2s0: i2s@eee30000 {
2046+ compatible = "samsung,s5pv210-i2s";
2047+ reg = <0xeee30000 0x1000>;
2048+ interrupt-parent = <&vic2>;
2049+ interrupts = <16>;
2050+ dma-names = "rx", "tx", "tx-sec";
2051+ dmas = <&pdma1 9>, <&pdma1 10>, <&pdma1 11>;
2052+ clock-names = "iis",
2053+ "i2s_opclk0",
2054+ "i2s_opclk1";
2055+ clocks = <&clk_audss CLK_I2S>,
2056+ <&clk_audss CLK_I2S>,
2057+ <&clk_audss CLK_DOUT_AUD_BUS>;
2058+ samsung,idma-addr = <0xc0010000>;
2059+ pinctrl-names = "default";
2060+ pinctrl-0 = <&i2s0_bus>;
2061+ #sound-dai-cells = <0>;
2062+ status = "disabled";
2063 };
2064
2065 i2s1: i2s@e2100000 {
2066diff --git a/arch/arm/boot/dts/sama5d2.dtsi b/arch/arm/boot/dts/sama5d2.dtsi
2067index 2e2c1a7..b05bab5 100644
2068--- a/arch/arm/boot/dts/sama5d2.dtsi
2069+++ b/arch/arm/boot/dts/sama5d2.dtsi
2070@@ -648,6 +648,7 @@
2071 clocks = <&pmc PMC_TYPE_PERIPHERAL 51>;
2072 #address-cells = <1>;
2073 #size-cells = <1>;
2074+ no-memory-wc;
2075 ranges = <0 0xf8044000 0x1420>;
2076 };
2077
2078@@ -716,7 +717,7 @@
2079
2080 can0: can@f8054000 {
2081 compatible = "bosch,m_can";
2082- reg = <0xf8054000 0x4000>, <0x210000 0x4000>;
2083+ reg = <0xf8054000 0x4000>, <0x210000 0x1c00>;
2084 reg-names = "m_can", "message_ram";
2085 interrupts = <56 IRQ_TYPE_LEVEL_HIGH 7>,
2086 <64 IRQ_TYPE_LEVEL_HIGH 7>;
2087@@ -938,7 +939,7 @@
2088
2089 can1: can@fc050000 {
2090 compatible = "bosch,m_can";
2091- reg = <0xfc050000 0x4000>, <0x210000 0x4000>;
2092+ reg = <0xfc050000 0x4000>, <0x210000 0x3800>;
2093 reg-names = "m_can", "message_ram";
2094 interrupts = <57 IRQ_TYPE_LEVEL_HIGH 7>,
2095 <65 IRQ_TYPE_LEVEL_HIGH 7>;
2096@@ -948,7 +949,7 @@
2097 assigned-clocks = <&pmc PMC_TYPE_GCK 57>;
2098 assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_UTMI>;
2099 assigned-clock-rates = <40000000>;
2100- bosch,mram-cfg = <0x1100 0 0 64 0 0 32 32>;
2101+ bosch,mram-cfg = <0x1c00 0 0 64 0 0 32 32>;
2102 status = "disabled";
2103 };
2104
2105diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
2106index e0a9b37..2265ca2 100644
2107--- a/arch/arm/boot/dts/sun4i-a10.dtsi
2108+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
2109@@ -143,7 +143,7 @@
2110 trips {
2111 cpu_alert0: cpu-alert0 {
2112 /* milliCelsius */
2113- temperature = <850000>;
2114+ temperature = <85000>;
2115 hysteresis = <2000>;
2116 type = "passive";
2117 };
2118diff --git a/arch/arm/boot/dts/sun6i-a31-hummingbird.dts b/arch/arm/boot/dts/sun6i-a31-hummingbird.dts
2119index 049e6ab..73de34a 100644
2120--- a/arch/arm/boot/dts/sun6i-a31-hummingbird.dts
2121+++ b/arch/arm/boot/dts/sun6i-a31-hummingbird.dts
2122@@ -154,7 +154,7 @@
2123 pinctrl-names = "default";
2124 pinctrl-0 = <&gmac_rgmii_pins>;
2125 phy-handle = <&phy1>;
2126- phy-mode = "rgmii";
2127+ phy-mode = "rgmii-id";
2128 status = "okay";
2129 };
2130
2131diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts b/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts
2132index 32d5d45..8945dbb 100644
2133--- a/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts
2134+++ b/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts
2135@@ -130,7 +130,7 @@
2136 pinctrl-names = "default";
2137 pinctrl-0 = <&gmac_rgmii_pins>;
2138 phy-handle = <&phy1>;
2139- phy-mode = "rgmii";
2140+ phy-mode = "rgmii-id";
2141 phy-supply = <&reg_gmac_3v3>;
2142 status = "okay";
2143 };
2144diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi.dts b/arch/arm/boot/dts/sun7i-a20-bananapi.dts
2145index bb3987e..0b3d9ae 100644
2146--- a/arch/arm/boot/dts/sun7i-a20-bananapi.dts
2147+++ b/arch/arm/boot/dts/sun7i-a20-bananapi.dts
2148@@ -132,7 +132,7 @@
2149 pinctrl-names = "default";
2150 pinctrl-0 = <&gmac_rgmii_pins>;
2151 phy-handle = <&phy1>;
2152- phy-mode = "rgmii";
2153+ phy-mode = "rgmii-id";
2154 phy-supply = <&reg_gmac_3v3>;
2155 status = "okay";
2156 };
2157diff --git a/arch/arm/boot/dts/sun7i-a20-bananapro.dts b/arch/arm/boot/dts/sun7i-a20-bananapro.dts
2158index 01ccff7..5740f94 100644
2159--- a/arch/arm/boot/dts/sun7i-a20-bananapro.dts
2160+++ b/arch/arm/boot/dts/sun7i-a20-bananapro.dts
2161@@ -110,7 +110,7 @@
2162 pinctrl-names = "default";
2163 pinctrl-0 = <&gmac_rgmii_pins>;
2164 phy-handle = <&phy1>;
2165- phy-mode = "rgmii";
2166+ phy-mode = "rgmii-id";
2167 phy-supply = <&reg_gmac_3v3>;
2168 status = "okay";
2169 };
2170diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
2171index 8c8dee6..9109ca0 100644
2172--- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
2173+++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
2174@@ -151,7 +151,7 @@
2175 pinctrl-names = "default";
2176 pinctrl-0 = <&gmac_rgmii_pins>;
2177 phy-handle = <&phy1>;
2178- phy-mode = "rgmii";
2179+ phy-mode = "rgmii-id";
2180 status = "okay";
2181 };
2182
2183diff --git a/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts b/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
2184index fce2f7f..bf38c66 100644
2185--- a/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
2186+++ b/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
2187@@ -1,5 +1,5 @@
2188 /*
2189- * Copyright 2015 Adam Sampson <ats@offog.org>
2190+ * Copyright 2015-2020 Adam Sampson <ats@offog.org>
2191 *
2192 * This file is dual-licensed: you can use it either under the terms
2193 * of the GPL or the X11 license, at your option. Note that this dual
2194@@ -115,7 +115,7 @@
2195 pinctrl-names = "default";
2196 pinctrl-0 = <&gmac_rgmii_pins>;
2197 phy-handle = <&phy1>;
2198- phy-mode = "rgmii";
2199+ phy-mode = "rgmii-id";
2200 status = "okay";
2201 };
2202
2203diff --git a/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts b/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts
2204index 9d34eab..431f702 100644
2205--- a/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts
2206+++ b/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts
2207@@ -131,7 +131,7 @@
2208 pinctrl-0 = <&emac_rgmii_pins>;
2209 phy-supply = <&reg_sw>;
2210 phy-handle = <&rgmii_phy>;
2211- phy-mode = "rgmii";
2212+ phy-mode = "rgmii-id";
2213 allwinner,rx-delay-ps = <700>;
2214 allwinner,tx-delay-ps = <700>;
2215 status = "okay";
2216diff --git a/arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts b/arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts
2217index d9be511..d8326a5 100644
2218--- a/arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts
2219+++ b/arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts
2220@@ -183,7 +183,7 @@
2221 pinctrl-0 = <&emac_rgmii_pins>;
2222 phy-supply = <&reg_dldo4>;
2223 phy-handle = <&rgmii_phy>;
2224- phy-mode = "rgmii";
2225+ phy-mode = "rgmii-id";
2226 status = "okay";
2227 };
2228
2229diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts
2230index 71fb732..babf4cf 100644
2231--- a/arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts
2232+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts
2233@@ -53,11 +53,6 @@
2234 };
2235 };
2236
2237-&emac {
2238- /* LEDs changed to active high on the plus */
2239- /delete-property/ allwinner,leds-active-low;
2240-};
2241-
2242 &mmc1 {
2243 vmmc-supply = <&reg_vcc3v3>;
2244 bus-width = <4>;
2245diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts
2246index 6dbf7b2..b6ca45d 100644
2247--- a/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts
2248+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts
2249@@ -67,7 +67,7 @@
2250 pinctrl-0 = <&emac_rgmii_pins>;
2251 phy-supply = <&reg_gmac_3v3>;
2252 phy-handle = <&ext_rgmii_phy>;
2253- phy-mode = "rgmii";
2254+ phy-mode = "rgmii-id";
2255 status = "okay";
2256 };
2257
2258diff --git a/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts b/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts
2259index ea15073..7db8950 100644
2260--- a/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts
2261+++ b/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts
2262@@ -129,7 +129,7 @@
2263 pinctrl-names = "default";
2264 pinctrl-0 = <&gmac_rgmii_pins>;
2265 phy-handle = <&phy1>;
2266- phy-mode = "rgmii";
2267+ phy-mode = "rgmii-id";
2268 phy-supply = <&reg_dc1sw>;
2269 status = "okay";
2270 };
2271diff --git a/arch/arm/boot/dts/sun8i-v3s.dtsi b/arch/arm/boot/dts/sun8i-v3s.dtsi
2272index 2abcba3..50c32cf 100644
2273--- a/arch/arm/boot/dts/sun8i-v3s.dtsi
2274+++ b/arch/arm/boot/dts/sun8i-v3s.dtsi
2275@@ -423,7 +423,7 @@
2276 gic: interrupt-controller@1c81000 {
2277 compatible = "arm,gic-400";
2278 reg = <0x01c81000 0x1000>,
2279- <0x01c82000 0x1000>,
2280+ <0x01c82000 0x2000>,
2281 <0x01c84000 0x2000>,
2282 <0x01c86000 0x2000>;
2283 interrupt-controller;
2284diff --git a/arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts b/arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts
2285index 15c22b0..4795455 100644
2286--- a/arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts
2287+++ b/arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts
2288@@ -120,7 +120,7 @@
2289 pinctrl-names = "default";
2290 pinctrl-0 = <&gmac_rgmii_pins>;
2291 phy-handle = <&phy1>;
2292- phy-mode = "rgmii";
2293+ phy-mode = "rgmii-id";
2294 phy-supply = <&reg_dc1sw>;
2295 status = "okay";
2296 };
2297@@ -198,16 +198,16 @@
2298 };
2299
2300 &reg_dc1sw {
2301- regulator-min-microvolt = <3000000>;
2302- regulator-max-microvolt = <3000000>;
2303+ regulator-min-microvolt = <3300000>;
2304+ regulator-max-microvolt = <3300000>;
2305 regulator-name = "vcc-gmac-phy";
2306 };
2307
2308 &reg_dcdc1 {
2309 regulator-always-on;
2310- regulator-min-microvolt = <3000000>;
2311- regulator-max-microvolt = <3000000>;
2312- regulator-name = "vcc-3v0";
2313+ regulator-min-microvolt = <3300000>;
2314+ regulator-max-microvolt = <3300000>;
2315+ regulator-name = "vcc-3v3";
2316 };
2317
2318 &reg_dcdc2 {
2319diff --git a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
2320index d3b337b..484b93d 100644
2321--- a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
2322+++ b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
2323@@ -129,7 +129,7 @@
2324 pinctrl-names = "default";
2325 pinctrl-0 = <&gmac_rgmii_pins>;
2326 phy-handle = <&phy1>;
2327- phy-mode = "rgmii";
2328+ phy-mode = "rgmii-id";
2329 phy-supply = <&reg_cldo1>;
2330 status = "okay";
2331 };
2332diff --git a/arch/arm/boot/dts/sun9i-a80-optimus.dts b/arch/arm/boot/dts/sun9i-a80-optimus.dts
2333index bbc6335..5c3580d 100644
2334--- a/arch/arm/boot/dts/sun9i-a80-optimus.dts
2335+++ b/arch/arm/boot/dts/sun9i-a80-optimus.dts
2336@@ -124,7 +124,7 @@
2337 pinctrl-names = "default";
2338 pinctrl-0 = <&gmac_rgmii_pins>;
2339 phy-handle = <&phy1>;
2340- phy-mode = "rgmii";
2341+ phy-mode = "rgmii-id";
2342 phy-supply = <&reg_cldo1>;
2343 status = "okay";
2344 };
2345diff --git a/arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi b/arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi
2346index 39263e7..8e5cb3b 100644
2347--- a/arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi
2348+++ b/arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi
2349@@ -126,7 +126,7 @@
2350 pinctrl-0 = <&emac_rgmii_pins>;
2351 phy-supply = <&reg_gmac_3v3>;
2352 phy-handle = <&ext_rgmii_phy>;
2353- phy-mode = "rgmii";
2354+ phy-mode = "rgmii-id";
2355
2356 status = "okay";
2357 };
2358diff --git a/arch/arm/crypto/aes-ce-core.S b/arch/arm/crypto/aes-ce-core.S
2359index 4d17073..312428d 100644
2360--- a/arch/arm/crypto/aes-ce-core.S
2361+++ b/arch/arm/crypto/aes-ce-core.S
2362@@ -386,20 +386,32 @@ ENTRY(ce_aes_ctr_encrypt)
2363 .Lctrloop4x:
2364 subs r4, r4, #4
2365 bmi .Lctr1x
2366- add r6, r6, #1
2367+
2368+ /*
2369+ * NOTE: the sequence below has been carefully tweaked to avoid
2370+ * a silicon erratum that exists in Cortex-A57 (#1742098) and
2371+ * Cortex-A72 (#1655431) cores, where AESE/AESMC instruction pairs
2372+ * may produce an incorrect result if they take their input from a
2373+ * register of which a single 32-bit lane has been updated the last
2374+ * time it was modified. To work around this, the lanes of registers
2375+ * q0-q3 below are not manipulated individually, and the different
2376+ * counter values are prepared by successive manipulations of q7.
2377+ */
2378+ add ip, r6, #1
2379 vmov q0, q7
2380+ rev ip, ip
2381+ add lr, r6, #2
2382+ vmov s31, ip @ set lane 3 of q1 via q7
2383+ add ip, r6, #3
2384+ rev lr, lr
2385 vmov q1, q7
2386- rev ip, r6
2387- add r6, r6, #1
2388+ vmov s31, lr @ set lane 3 of q2 via q7
2389+ rev ip, ip
2390 vmov q2, q7
2391- vmov s7, ip
2392- rev ip, r6
2393- add r6, r6, #1
2394+ vmov s31, ip @ set lane 3 of q3 via q7
2395+ add r6, r6, #4
2396 vmov q3, q7
2397- vmov s11, ip
2398- rev ip, r6
2399- add r6, r6, #1
2400- vmov s15, ip
2401+
2402 vld1.8 {q4-q5}, [r1]!
2403 vld1.8 {q6}, [r1]!
2404 vld1.8 {q15}, [r1]!
2405diff --git a/arch/arm/include/asm/kexec-internal.h b/arch/arm/include/asm/kexec-internal.h
2406new file mode 100644
2407index 0000000..ecc2322
2408--- /dev/null
2409+++ b/arch/arm/include/asm/kexec-internal.h
2410@@ -0,0 +1,12 @@
2411+/* SPDX-License-Identifier: GPL-2.0 */
2412+#ifndef _ARM_KEXEC_INTERNAL_H
2413+#define _ARM_KEXEC_INTERNAL_H
2414+
2415+struct kexec_relocate_data {
2416+ unsigned long kexec_start_address;
2417+ unsigned long kexec_indirection_page;
2418+ unsigned long kexec_mach_type;
2419+ unsigned long kexec_r2;
2420+};
2421+
2422+#endif
2423diff --git a/arch/arm/include/asm/kprobes.h b/arch/arm/include/asm/kprobes.h
2424index 213607a..e26a278 100644
2425--- a/arch/arm/include/asm/kprobes.h
2426+++ b/arch/arm/include/asm/kprobes.h
2427@@ -44,20 +44,20 @@ int kprobe_exceptions_notify(struct notifier_block *self,
2428 unsigned long val, void *data);
2429
2430 /* optinsn template addresses */
2431-extern __visible kprobe_opcode_t optprobe_template_entry;
2432-extern __visible kprobe_opcode_t optprobe_template_val;
2433-extern __visible kprobe_opcode_t optprobe_template_call;
2434-extern __visible kprobe_opcode_t optprobe_template_end;
2435-extern __visible kprobe_opcode_t optprobe_template_sub_sp;
2436-extern __visible kprobe_opcode_t optprobe_template_add_sp;
2437-extern __visible kprobe_opcode_t optprobe_template_restore_begin;
2438-extern __visible kprobe_opcode_t optprobe_template_restore_orig_insn;
2439-extern __visible kprobe_opcode_t optprobe_template_restore_end;
2440+extern __visible kprobe_opcode_t optprobe_template_entry[];
2441+extern __visible kprobe_opcode_t optprobe_template_val[];
2442+extern __visible kprobe_opcode_t optprobe_template_call[];
2443+extern __visible kprobe_opcode_t optprobe_template_end[];
2444+extern __visible kprobe_opcode_t optprobe_template_sub_sp[];
2445+extern __visible kprobe_opcode_t optprobe_template_add_sp[];
2446+extern __visible kprobe_opcode_t optprobe_template_restore_begin[];
2447+extern __visible kprobe_opcode_t optprobe_template_restore_orig_insn[];
2448+extern __visible kprobe_opcode_t optprobe_template_restore_end[];
2449
2450 #define MAX_OPTIMIZED_LENGTH 4
2451 #define MAX_OPTINSN_SIZE \
2452- ((unsigned long)&optprobe_template_end - \
2453- (unsigned long)&optprobe_template_entry)
2454+ ((unsigned long)optprobe_template_end - \
2455+ (unsigned long)optprobe_template_entry)
2456 #define RELATIVEJUMP_SIZE 4
2457
2458 struct arch_optimized_insn {
2459diff --git a/arch/arm/include/asm/kvm_asm.h b/arch/arm/include/asm/kvm_asm.h
2460index f615830..9d0b7e6 100644
2461--- a/arch/arm/include/asm/kvm_asm.h
2462+++ b/arch/arm/include/asm/kvm_asm.h
2463@@ -56,7 +56,7 @@ extern char __kvm_hyp_init_end[];
2464 extern void __kvm_flush_vm_context(void);
2465 extern void __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa);
2466 extern void __kvm_tlb_flush_vmid(struct kvm *kvm);
2467-extern void __kvm_tlb_flush_local_vmid(struct kvm_vcpu *vcpu);
2468+extern void __kvm_flush_cpu_context(struct kvm_vcpu *vcpu);
2469
2470 extern void __kvm_timer_set_cntvoff(u32 cntvoff_low, u32 cntvoff_high);
2471
2472diff --git a/arch/arm/include/asm/pgtable-2level.h b/arch/arm/include/asm/pgtable-2level.h
2473index 51beec4..50b51ac 100644
2474--- a/arch/arm/include/asm/pgtable-2level.h
2475+++ b/arch/arm/include/asm/pgtable-2level.h
2476@@ -75,6 +75,8 @@
2477 #define PTE_HWTABLE_OFF (PTE_HWTABLE_PTRS * sizeof(pte_t))
2478 #define PTE_HWTABLE_SIZE (PTRS_PER_PTE * sizeof(u32))
2479
2480+#define MAX_POSSIBLE_PHYSMEM_BITS 32
2481+
2482 /*
2483 * PMD_SHIFT determines the size of the area a second-level page table can map
2484 * PGDIR_SHIFT determines what a third-level page table entry can map
2485diff --git a/arch/arm/include/asm/pgtable-3level.h b/arch/arm/include/asm/pgtable-3level.h
2486index 5b18295..8006a56 100644
2487--- a/arch/arm/include/asm/pgtable-3level.h
2488+++ b/arch/arm/include/asm/pgtable-3level.h
2489@@ -25,6 +25,8 @@
2490 #define PTE_HWTABLE_OFF (0)
2491 #define PTE_HWTABLE_SIZE (PTRS_PER_PTE * sizeof(u64))
2492
2493+#define MAX_POSSIBLE_PHYSMEM_BITS 40
2494+
2495 /*
2496 * PGDIR_SHIFT determines the size a top-level page table entry can map.
2497 */
2498diff --git a/arch/arm/kernel/asm-offsets.c b/arch/arm/kernel/asm-offsets.c
2499index c773b82..bfb05c9 100644
2500--- a/arch/arm/kernel/asm-offsets.c
2501+++ b/arch/arm/kernel/asm-offsets.c
2502@@ -15,6 +15,7 @@
2503 #include <linux/kvm_host.h>
2504 #endif
2505 #include <asm/cacheflush.h>
2506+#include <asm/kexec-internal.h>
2507 #include <asm/glue-df.h>
2508 #include <asm/glue-pf.h>
2509 #include <asm/mach/arch.h>
2510@@ -190,5 +191,9 @@ int main(void)
2511 DEFINE(MPU_RGN_PRBAR, offsetof(struct mpu_rgn, prbar));
2512 DEFINE(MPU_RGN_PRLAR, offsetof(struct mpu_rgn, prlar));
2513 #endif
2514+ DEFINE(KEXEC_START_ADDR, offsetof(struct kexec_relocate_data, kexec_start_address));
2515+ DEFINE(KEXEC_INDIR_PAGE, offsetof(struct kexec_relocate_data, kexec_indirection_page));
2516+ DEFINE(KEXEC_MACH_TYPE, offsetof(struct kexec_relocate_data, kexec_mach_type));
2517+ DEFINE(KEXEC_R2, offsetof(struct kexec_relocate_data, kexec_r2));
2518 return 0;
2519 }
2520diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
2521index c49b393..f1cdc1f 100644
2522--- a/arch/arm/kernel/head.S
2523+++ b/arch/arm/kernel/head.S
2524@@ -672,11 +672,7 @@ ARM_BE8(rev16 ip, ip)
2525 bcc 1b
2526 bx lr
2527 #else
2528-#ifdef CONFIG_CPU_ENDIAN_BE8
2529- moveq r0, #0x00004000 @ set bit 22, mov to mvn instruction
2530-#else
2531 moveq r0, #0x400000 @ set bit 22, mov to mvn instruction
2532-#endif
2533 b 2f
2534 1: ldr ip, [r7, r3]
2535 #ifdef CONFIG_CPU_ENDIAN_BE8
2536@@ -685,7 +681,7 @@ ARM_BE8(rev16 ip, ip)
2537 tst ip, #0x000f0000 @ check the rotation field
2538 orrne ip, ip, r6, lsl #24 @ mask in offset bits 31-24
2539 biceq ip, ip, #0x00004000 @ clear bit 22
2540- orreq ip, ip, r0 @ mask in offset bits 7-0
2541+ orreq ip, ip, r0, ror #8 @ mask in offset bits 7-0
2542 #else
2543 bic ip, ip, #0x000000ff
2544 tst ip, #0xf00 @ check the rotation field
2545diff --git a/arch/arm/kernel/hw_breakpoint.c b/arch/arm/kernel/hw_breakpoint.c
2546index 5f95e4b..7021ef0 100644
2547--- a/arch/arm/kernel/hw_breakpoint.c
2548+++ b/arch/arm/kernel/hw_breakpoint.c
2549@@ -680,6 +680,40 @@ static void disable_single_step(struct perf_event *bp)
2550 arch_install_hw_breakpoint(bp);
2551 }
2552
2553+/*
2554+ * Arm32 hardware does not always report a watchpoint hit address that matches
2555+ * one of the watchpoints set. It can also report an address "near" the
2556+ * watchpoint if a single instruction access both watched and unwatched
2557+ * addresses. There is no straight-forward way, short of disassembling the
2558+ * offending instruction, to map that address back to the watchpoint. This
2559+ * function computes the distance of the memory access from the watchpoint as a
2560+ * heuristic for the likelyhood that a given access triggered the watchpoint.
2561+ *
2562+ * See this same function in the arm64 platform code, which has the same
2563+ * problem.
2564+ *
2565+ * The function returns the distance of the address from the bytes watched by
2566+ * the watchpoint. In case of an exact match, it returns 0.
2567+ */
2568+static u32 get_distance_from_watchpoint(unsigned long addr, u32 val,
2569+ struct arch_hw_breakpoint_ctrl *ctrl)
2570+{
2571+ u32 wp_low, wp_high;
2572+ u32 lens, lene;
2573+
2574+ lens = __ffs(ctrl->len);
2575+ lene = __fls(ctrl->len);
2576+
2577+ wp_low = val + lens;
2578+ wp_high = val + lene;
2579+ if (addr < wp_low)
2580+ return wp_low - addr;
2581+ else if (addr > wp_high)
2582+ return addr - wp_high;
2583+ else
2584+ return 0;
2585+}
2586+
2587 static int watchpoint_fault_on_uaccess(struct pt_regs *regs,
2588 struct arch_hw_breakpoint *info)
2589 {
2590@@ -689,23 +723,25 @@ static int watchpoint_fault_on_uaccess(struct pt_regs *regs,
2591 static void watchpoint_handler(unsigned long addr, unsigned int fsr,
2592 struct pt_regs *regs)
2593 {
2594- int i, access;
2595- u32 val, ctrl_reg, alignment_mask;
2596+ int i, access, closest_match = 0;
2597+ u32 min_dist = -1, dist;
2598+ u32 val, ctrl_reg;
2599 struct perf_event *wp, **slots;
2600 struct arch_hw_breakpoint *info;
2601 struct arch_hw_breakpoint_ctrl ctrl;
2602
2603 slots = this_cpu_ptr(wp_on_reg);
2604
2605+ /*
2606+ * Find all watchpoints that match the reported address. If no exact
2607+ * match is found. Attribute the hit to the closest watchpoint.
2608+ */
2609+ rcu_read_lock();
2610 for (i = 0; i < core_num_wrps; ++i) {
2611- rcu_read_lock();
2612-
2613 wp = slots[i];
2614-
2615 if (wp == NULL)
2616- goto unlock;
2617+ continue;
2618
2619- info = counter_arch_bp(wp);
2620 /*
2621 * The DFAR is an unknown value on debug architectures prior
2622 * to 7.1. Since we only allow a single watchpoint on these
2623@@ -714,33 +750,31 @@ static void watchpoint_handler(unsigned long addr, unsigned int fsr,
2624 */
2625 if (debug_arch < ARM_DEBUG_ARCH_V7_1) {
2626 BUG_ON(i > 0);
2627+ info = counter_arch_bp(wp);
2628 info->trigger = wp->attr.bp_addr;
2629 } else {
2630- if (info->ctrl.len == ARM_BREAKPOINT_LEN_8)
2631- alignment_mask = 0x7;
2632- else
2633- alignment_mask = 0x3;
2634-
2635- /* Check if the watchpoint value matches. */
2636- val = read_wb_reg(ARM_BASE_WVR + i);
2637- if (val != (addr & ~alignment_mask))
2638- goto unlock;
2639-
2640- /* Possible match, check the byte address select. */
2641- ctrl_reg = read_wb_reg(ARM_BASE_WCR + i);
2642- decode_ctrl_reg(ctrl_reg, &ctrl);
2643- if (!((1 << (addr & alignment_mask)) & ctrl.len))
2644- goto unlock;
2645-
2646 /* Check that the access type matches. */
2647 if (debug_exception_updates_fsr()) {
2648 access = (fsr & ARM_FSR_ACCESS_MASK) ?
2649 HW_BREAKPOINT_W : HW_BREAKPOINT_R;
2650 if (!(access & hw_breakpoint_type(wp)))
2651- goto unlock;
2652+ continue;
2653 }
2654
2655+ val = read_wb_reg(ARM_BASE_WVR + i);
2656+ ctrl_reg = read_wb_reg(ARM_BASE_WCR + i);
2657+ decode_ctrl_reg(ctrl_reg, &ctrl);
2658+ dist = get_distance_from_watchpoint(addr, val, &ctrl);
2659+ if (dist < min_dist) {
2660+ min_dist = dist;
2661+ closest_match = i;
2662+ }
2663+ /* Is this an exact match? */
2664+ if (dist != 0)
2665+ continue;
2666+
2667 /* We have a winner. */
2668+ info = counter_arch_bp(wp);
2669 info->trigger = addr;
2670 }
2671
2672@@ -762,13 +796,23 @@ static void watchpoint_handler(unsigned long addr, unsigned int fsr,
2673 * we can single-step over the watchpoint trigger.
2674 */
2675 if (!is_default_overflow_handler(wp))
2676- goto unlock;
2677-
2678+ continue;
2679 step:
2680 enable_single_step(wp, instruction_pointer(regs));
2681-unlock:
2682- rcu_read_unlock();
2683 }
2684+
2685+ if (min_dist > 0 && min_dist != -1) {
2686+ /* No exact match found. */
2687+ wp = slots[closest_match];
2688+ info = counter_arch_bp(wp);
2689+ info->trigger = addr;
2690+ pr_debug("watchpoint fired: address = 0x%x\n", info->trigger);
2691+ perf_bp_event(wp, regs);
2692+ if (is_default_overflow_handler(wp))
2693+ enable_single_step(wp, instruction_pointer(regs));
2694+ }
2695+
2696+ rcu_read_unlock();
2697 }
2698
2699 static void watchpoint_single_step_handler(unsigned long pc)
2700diff --git a/arch/arm/kernel/machine_kexec.c b/arch/arm/kernel/machine_kexec.c
2701index 76300f3..734adeb 100644
2702--- a/arch/arm/kernel/machine_kexec.c
2703+++ b/arch/arm/kernel/machine_kexec.c
2704@@ -15,6 +15,7 @@
2705 #include <asm/pgalloc.h>
2706 #include <asm/mmu_context.h>
2707 #include <asm/cacheflush.h>
2708+#include <asm/kexec-internal.h>
2709 #include <asm/fncpy.h>
2710 #include <asm/mach-types.h>
2711 #include <asm/smp_plat.h>
2712@@ -24,11 +25,6 @@
2713 extern void relocate_new_kernel(void);
2714 extern const unsigned int relocate_new_kernel_size;
2715
2716-extern unsigned long kexec_start_address;
2717-extern unsigned long kexec_indirection_page;
2718-extern unsigned long kexec_mach_type;
2719-extern unsigned long kexec_boot_atags;
2720-
2721 static atomic_t waiting_for_crash_ipi;
2722
2723 /*
2724@@ -161,6 +157,7 @@ void (*kexec_reinit)(void);
2725 void machine_kexec(struct kimage *image)
2726 {
2727 unsigned long page_list, reboot_entry_phys;
2728+ struct kexec_relocate_data *data;
2729 void (*reboot_entry)(void);
2730 void *reboot_code_buffer;
2731
2732@@ -176,18 +173,17 @@ void machine_kexec(struct kimage *image)
2733
2734 reboot_code_buffer = page_address(image->control_code_page);
2735
2736- /* Prepare parameters for reboot_code_buffer*/
2737- set_kernel_text_rw();
2738- kexec_start_address = image->start;
2739- kexec_indirection_page = page_list;
2740- kexec_mach_type = machine_arch_type;
2741- kexec_boot_atags = image->arch.kernel_r2;
2742-
2743 /* copy our kernel relocation code to the control code page */
2744 reboot_entry = fncpy(reboot_code_buffer,
2745 &relocate_new_kernel,
2746 relocate_new_kernel_size);
2747
2748+ data = reboot_code_buffer + relocate_new_kernel_size;
2749+ data->kexec_start_address = image->start;
2750+ data->kexec_indirection_page = page_list;
2751+ data->kexec_mach_type = machine_arch_type;
2752+ data->kexec_r2 = image->arch.kernel_r2;
2753+
2754 /* get the identity mapping physical address for the reboot code */
2755 reboot_entry_phys = virt_to_idmap(reboot_entry);
2756
2757diff --git a/arch/arm/kernel/relocate_kernel.S b/arch/arm/kernel/relocate_kernel.S
2758index 7eaa2ae..5e15b59 100644
2759--- a/arch/arm/kernel/relocate_kernel.S
2760+++ b/arch/arm/kernel/relocate_kernel.S
2761@@ -5,14 +5,16 @@
2762
2763 #include <linux/linkage.h>
2764 #include <asm/assembler.h>
2765+#include <asm/asm-offsets.h>
2766 #include <asm/kexec.h>
2767
2768 .align 3 /* not needed for this code, but keeps fncpy() happy */
2769
2770 ENTRY(relocate_new_kernel)
2771
2772- ldr r0,kexec_indirection_page
2773- ldr r1,kexec_start_address
2774+ adr r7, relocate_new_kernel_end
2775+ ldr r0, [r7, #KEXEC_INDIR_PAGE]
2776+ ldr r1, [r7, #KEXEC_START_ADDR]
2777
2778 /*
2779 * If there is no indirection page (we are doing crashdumps)
2780@@ -57,34 +59,16 @@ ENTRY(relocate_new_kernel)
2781
2782 2:
2783 /* Jump to relocated kernel */
2784- mov lr,r1
2785- mov r0,#0
2786- ldr r1,kexec_mach_type
2787- ldr r2,kexec_boot_atags
2788- ARM( ret lr )
2789- THUMB( bx lr )
2790-
2791- .align
2792-
2793- .globl kexec_start_address
2794-kexec_start_address:
2795- .long 0x0
2796-
2797- .globl kexec_indirection_page
2798-kexec_indirection_page:
2799- .long 0x0
2800-
2801- .globl kexec_mach_type
2802-kexec_mach_type:
2803- .long 0x0
2804-
2805- /* phy addr of the atags for the new kernel */
2806- .globl kexec_boot_atags
2807-kexec_boot_atags:
2808- .long 0x0
2809+ mov lr, r1
2810+ mov r0, #0
2811+ ldr r1, [r7, #KEXEC_MACH_TYPE]
2812+ ldr r2, [r7, #KEXEC_R2]
2813+ ARM( ret lr )
2814+ THUMB( bx lr )
2815
2816 ENDPROC(relocate_new_kernel)
2817
2818+ .align 3
2819 relocate_new_kernel_end:
2820
2821 .globl relocate_new_kernel_size
2822diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c
2823index ab25689..c01f76c 100644
2824--- a/arch/arm/kernel/signal.c
2825+++ b/arch/arm/kernel/signal.c
2826@@ -694,18 +694,20 @@ struct page *get_signal_page(void)
2827
2828 addr = page_address(page);
2829
2830+ /* Poison the entire page */
2831+ memset32(addr, __opcode_to_mem_arm(0xe7fddef1),
2832+ PAGE_SIZE / sizeof(u32));
2833+
2834 /* Give the signal return code some randomness */
2835 offset = 0x200 + (get_random_int() & 0x7fc);
2836 signal_return_offset = offset;
2837
2838- /*
2839- * Copy signal return handlers into the vector page, and
2840- * set sigreturn to be a pointer to these.
2841- */
2842+ /* Copy signal return handlers into the page */
2843 memcpy(addr + offset, sigreturn_codes, sizeof(sigreturn_codes));
2844
2845- ptr = (unsigned long)addr + offset;
2846- flush_icache_range(ptr, ptr + sizeof(sigreturn_codes));
2847+ /* Flush out all instructions in this page */
2848+ ptr = (unsigned long)addr;
2849+ flush_icache_range(ptr, ptr + PAGE_SIZE);
2850
2851 return page;
2852 }
2853diff --git a/arch/arm/kvm/hyp/tlb.c b/arch/arm/kvm/hyp/tlb.c
2854index 848f27b..80e6710 100644
2855--- a/arch/arm/kvm/hyp/tlb.c
2856+++ b/arch/arm/kvm/hyp/tlb.c
2857@@ -45,7 +45,7 @@ void __hyp_text __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa)
2858 __kvm_tlb_flush_vmid(kvm);
2859 }
2860
2861-void __hyp_text __kvm_tlb_flush_local_vmid(struct kvm_vcpu *vcpu)
2862+void __hyp_text __kvm_flush_cpu_context(struct kvm_vcpu *vcpu)
2863 {
2864 struct kvm *kvm = kern_hyp_va(kern_hyp_va(vcpu)->kvm);
2865
2866@@ -54,6 +54,7 @@ void __hyp_text __kvm_tlb_flush_local_vmid(struct kvm_vcpu *vcpu)
2867 isb();
2868
2869 write_sysreg(0, TLBIALL);
2870+ write_sysreg(0, ICIALLU);
2871 dsb(nsh);
2872 isb();
2873
2874diff --git a/arch/arm/mach-footbridge/dc21285.c b/arch/arm/mach-footbridge/dc21285.c
2875index 8b81a17..e17ec92 100644
2876--- a/arch/arm/mach-footbridge/dc21285.c
2877+++ b/arch/arm/mach-footbridge/dc21285.c
2878@@ -66,15 +66,15 @@ dc21285_read_config(struct pci_bus *bus, unsigned int devfn, int where,
2879 if (addr)
2880 switch (size) {
2881 case 1:
2882- asm("ldrb %0, [%1, %2]"
2883+ asm volatile("ldrb %0, [%1, %2]"
2884 : "=r" (v) : "r" (addr), "r" (where) : "cc");
2885 break;
2886 case 2:
2887- asm("ldrh %0, [%1, %2]"
2888+ asm volatile("ldrh %0, [%1, %2]"
2889 : "=r" (v) : "r" (addr), "r" (where) : "cc");
2890 break;
2891 case 4:
2892- asm("ldr %0, [%1, %2]"
2893+ asm volatile("ldr %0, [%1, %2]"
2894 : "=r" (v) : "r" (addr), "r" (where) : "cc");
2895 break;
2896 }
2897@@ -100,17 +100,17 @@ dc21285_write_config(struct pci_bus *bus, unsigned int devfn, int where,
2898 if (addr)
2899 switch (size) {
2900 case 1:
2901- asm("strb %0, [%1, %2]"
2902+ asm volatile("strb %0, [%1, %2]"
2903 : : "r" (value), "r" (addr), "r" (where)
2904 : "cc");
2905 break;
2906 case 2:
2907- asm("strh %0, [%1, %2]"
2908+ asm volatile("strh %0, [%1, %2]"
2909 : : "r" (value), "r" (addr), "r" (where)
2910 : "cc");
2911 break;
2912 case 4:
2913- asm("str %0, [%1, %2]"
2914+ asm volatile("str %0, [%1, %2]"
2915 : : "r" (value), "r" (addr), "r" (where)
2916 : "cc");
2917 break;
2918diff --git a/arch/arm/mach-imx/suspend-imx6.S b/arch/arm/mach-imx/suspend-imx6.S
2919index 1eabf2d..e06f946 100644
2920--- a/arch/arm/mach-imx/suspend-imx6.S
2921+++ b/arch/arm/mach-imx/suspend-imx6.S
2922@@ -67,6 +67,7 @@
2923 #define MX6Q_CCM_CCR 0x0
2924
2925 .align 3
2926+ .arm
2927
2928 .macro sync_l2_cache
2929
2930diff --git a/arch/arm/mach-ixp4xx/Kconfig b/arch/arm/mach-ixp4xx/Kconfig
2931index f7211b5..165c184 100644
2932--- a/arch/arm/mach-ixp4xx/Kconfig
2933+++ b/arch/arm/mach-ixp4xx/Kconfig
2934@@ -13,7 +13,6 @@ config MACH_IXP4XX_OF
2935 select I2C
2936 select I2C_IOP3XX
2937 select PCI
2938- select TIMER_OF
2939 select USE_OF
2940 help
2941 Say 'Y' here to support Device Tree-based IXP4xx platforms.
2942diff --git a/arch/arm/mach-omap2/cpuidle44xx.c b/arch/arm/mach-omap2/cpuidle44xx.c
2943index a92d277..de37027 100644
2944--- a/arch/arm/mach-omap2/cpuidle44xx.c
2945+++ b/arch/arm/mach-omap2/cpuidle44xx.c
2946@@ -151,10 +151,10 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
2947 (cx->mpu_logic_state == PWRDM_POWER_OFF);
2948
2949 /* Enter broadcast mode for periodic timers */
2950- tick_broadcast_enable();
2951+ RCU_NONIDLE(tick_broadcast_enable());
2952
2953 /* Enter broadcast mode for one-shot timers */
2954- tick_broadcast_enter();
2955+ RCU_NONIDLE(tick_broadcast_enter());
2956
2957 /*
2958 * Call idle CPU PM enter notifier chain so that
2959@@ -166,7 +166,7 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
2960
2961 if (dev->cpu == 0) {
2962 pwrdm_set_logic_retst(mpu_pd, cx->mpu_logic_state);
2963- omap_set_pwrdm_state(mpu_pd, cx->mpu_state);
2964+ RCU_NONIDLE(omap_set_pwrdm_state(mpu_pd, cx->mpu_state));
2965
2966 /*
2967 * Call idle CPU cluster PM enter notifier chain
2968@@ -175,8 +175,11 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
2969 if (mpuss_can_lose_context) {
2970 error = cpu_cluster_pm_enter();
2971 if (error) {
2972- omap_set_pwrdm_state(mpu_pd, PWRDM_POWER_ON);
2973- goto cpu_cluster_pm_out;
2974+ index = 0;
2975+ cx = state_ptr + index;
2976+ pwrdm_set_logic_retst(mpu_pd, cx->mpu_logic_state);
2977+ RCU_NONIDLE(omap_set_pwrdm_state(mpu_pd, cx->mpu_state));
2978+ mpuss_can_lose_context = 0;
2979 }
2980 }
2981 }
2982@@ -184,7 +187,6 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
2983 omap4_enter_lowpower(dev->cpu, cx->cpu_state);
2984 cpu_done[dev->cpu] = true;
2985
2986-cpu_cluster_pm_out:
2987 /* Wakeup CPU1 only if it is not offlined */
2988 if (dev->cpu == 0 && cpumask_test_cpu(1, cpu_online_mask)) {
2989
2990@@ -192,9 +194,9 @@ cpu_cluster_pm_out:
2991 mpuss_can_lose_context)
2992 gic_dist_disable();
2993
2994- clkdm_deny_idle(cpu_clkdm[1]);
2995- omap_set_pwrdm_state(cpu_pd[1], PWRDM_POWER_ON);
2996- clkdm_allow_idle(cpu_clkdm[1]);
2997+ RCU_NONIDLE(clkdm_deny_idle(cpu_clkdm[1]));
2998+ RCU_NONIDLE(omap_set_pwrdm_state(cpu_pd[1], PWRDM_POWER_ON));
2999+ RCU_NONIDLE(clkdm_allow_idle(cpu_clkdm[1]));
3000
3001 if (IS_PM44XX_ERRATUM(PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD) &&
3002 mpuss_can_lose_context) {
3003@@ -220,7 +222,7 @@ cpu_cluster_pm_out:
3004 cpu_pm_exit();
3005
3006 cpu_pm_out:
3007- tick_broadcast_exit();
3008+ RCU_NONIDLE(tick_broadcast_exit());
3009
3010 fail:
3011 cpuidle_coupled_parallel_barrier(dev, &abort_barrier);
3012diff --git a/arch/arm/mach-omap2/omap_device.c b/arch/arm/mach-omap2/omap_device.c
3013index 3acb419..f85a0fd 100644
3014--- a/arch/arm/mach-omap2/omap_device.c
3015+++ b/arch/arm/mach-omap2/omap_device.c
3016@@ -234,10 +234,12 @@ static int _omap_device_notifier_call(struct notifier_block *nb,
3017 break;
3018 case BUS_NOTIFY_BIND_DRIVER:
3019 od = to_omap_device(pdev);
3020- if (od && (od->_state == OMAP_DEVICE_STATE_ENABLED) &&
3021- pm_runtime_status_suspended(dev)) {
3022+ if (od) {
3023 od->_driver_status = BUS_NOTIFY_BIND_DRIVER;
3024- pm_runtime_set_active(dev);
3025+ if (od->_state == OMAP_DEVICE_STATE_ENABLED &&
3026+ pm_runtime_status_suspended(dev)) {
3027+ pm_runtime_set_active(dev);
3028+ }
3029 }
3030 break;
3031 case BUS_NOTIFY_ADD_DEVICE:
3032diff --git a/arch/arm/mach-sunxi/sunxi.c b/arch/arm/mach-sunxi/sunxi.c
3033index 933b693..a0ca5e7 100644
3034--- a/arch/arm/mach-sunxi/sunxi.c
3035+++ b/arch/arm/mach-sunxi/sunxi.c
3036@@ -66,6 +66,7 @@ static const char * const sun8i_board_dt_compat[] = {
3037 "allwinner,sun8i-h2-plus",
3038 "allwinner,sun8i-h3",
3039 "allwinner,sun8i-r40",
3040+ "allwinner,sun8i-v3",
3041 "allwinner,sun8i-v3s",
3042 NULL,
3043 };
3044diff --git a/arch/arm/plat-samsung/Kconfig b/arch/arm/plat-samsung/Kconfig
3045index 301e572..790c87e 100644
3046--- a/arch/arm/plat-samsung/Kconfig
3047+++ b/arch/arm/plat-samsung/Kconfig
3048@@ -241,6 +241,7 @@ config SAMSUNG_PM_DEBUG
3049 depends on PM && DEBUG_KERNEL
3050 depends on PLAT_S3C24XX || ARCH_S3C64XX || ARCH_S5PV210
3051 depends on DEBUG_EXYNOS_UART || DEBUG_S3C24XX_UART || DEBUG_S3C2410_UART
3052+ depends on DEBUG_LL && MMU
3053 help
3054 Say Y here if you want verbose debugging from the PM Suspend and
3055 Resume code. See <file:Documentation/arm/samsung-s3c24xx/suspend.rst>
3056diff --git a/arch/arm/probes/kprobes/opt-arm.c b/arch/arm/probes/kprobes/opt-arm.c
3057index 7a449df..c781801 100644
3058--- a/arch/arm/probes/kprobes/opt-arm.c
3059+++ b/arch/arm/probes/kprobes/opt-arm.c
3060@@ -85,21 +85,21 @@ asm (
3061 "optprobe_template_end:\n");
3062
3063 #define TMPL_VAL_IDX \
3064- ((unsigned long *)&optprobe_template_val - (unsigned long *)&optprobe_template_entry)
3065+ ((unsigned long *)optprobe_template_val - (unsigned long *)optprobe_template_entry)
3066 #define TMPL_CALL_IDX \
3067- ((unsigned long *)&optprobe_template_call - (unsigned long *)&optprobe_template_entry)
3068+ ((unsigned long *)optprobe_template_call - (unsigned long *)optprobe_template_entry)
3069 #define TMPL_END_IDX \
3070- ((unsigned long *)&optprobe_template_end - (unsigned long *)&optprobe_template_entry)
3071+ ((unsigned long *)optprobe_template_end - (unsigned long *)optprobe_template_entry)
3072 #define TMPL_ADD_SP \
3073- ((unsigned long *)&optprobe_template_add_sp - (unsigned long *)&optprobe_template_entry)
3074+ ((unsigned long *)optprobe_template_add_sp - (unsigned long *)optprobe_template_entry)
3075 #define TMPL_SUB_SP \
3076- ((unsigned long *)&optprobe_template_sub_sp - (unsigned long *)&optprobe_template_entry)
3077+ ((unsigned long *)optprobe_template_sub_sp - (unsigned long *)optprobe_template_entry)
3078 #define TMPL_RESTORE_BEGIN \
3079- ((unsigned long *)&optprobe_template_restore_begin - (unsigned long *)&optprobe_template_entry)
3080+ ((unsigned long *)optprobe_template_restore_begin - (unsigned long *)optprobe_template_entry)
3081 #define TMPL_RESTORE_ORIGN_INSN \
3082- ((unsigned long *)&optprobe_template_restore_orig_insn - (unsigned long *)&optprobe_template_entry)
3083+ ((unsigned long *)optprobe_template_restore_orig_insn - (unsigned long *)optprobe_template_entry)
3084 #define TMPL_RESTORE_END \
3085- ((unsigned long *)&optprobe_template_restore_end - (unsigned long *)&optprobe_template_entry)
3086+ ((unsigned long *)optprobe_template_restore_end - (unsigned long *)optprobe_template_entry)
3087
3088 /*
3089 * ARM can always optimize an instruction when using ARM ISA, except
3090@@ -234,7 +234,7 @@ int arch_prepare_optimized_kprobe(struct optimized_kprobe *op, struct kprobe *or
3091 }
3092
3093 /* Copy arch-dep-instance from template. */
3094- memcpy(code, (unsigned long *)&optprobe_template_entry,
3095+ memcpy(code, (unsigned long *)optprobe_template_entry,
3096 TMPL_END_IDX * sizeof(kprobe_opcode_t));
3097
3098 /* Adjust buffer according to instruction. */
3099diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
3100index dd6804a..57dfc13 100644
3101--- a/arch/arm/xen/enlighten.c
3102+++ b/arch/arm/xen/enlighten.c
3103@@ -370,8 +370,6 @@ static int __init xen_guest_init(void)
3104 return -ENOMEM;
3105 }
3106 gnttab_init();
3107- if (!xen_initial_domain())
3108- xenbus_probe(NULL);
3109
3110 /*
3111 * Making sure board specific code will not set up ops for
3112diff --git a/arch/arm/xen/p2m.c b/arch/arm/xen/p2m.c
3113index e52950a..acb4645 100644
3114--- a/arch/arm/xen/p2m.c
3115+++ b/arch/arm/xen/p2m.c
3116@@ -93,10 +93,39 @@ int set_foreign_p2m_mapping(struct gnttab_map_grant_ref *map_ops,
3117 int i;
3118
3119 for (i = 0; i < count; i++) {
3120+ struct gnttab_unmap_grant_ref unmap;
3121+ int rc;
3122+
3123 if (map_ops[i].status)
3124 continue;
3125- set_phys_to_machine(map_ops[i].host_addr >> XEN_PAGE_SHIFT,
3126- map_ops[i].dev_bus_addr >> XEN_PAGE_SHIFT);
3127+ if (likely(set_phys_to_machine(map_ops[i].host_addr >> XEN_PAGE_SHIFT,
3128+ map_ops[i].dev_bus_addr >> XEN_PAGE_SHIFT)))
3129+ continue;
3130+
3131+ /*
3132+ * Signal an error for this slot. This in turn requires
3133+ * immediate unmapping.
3134+ */
3135+ map_ops[i].status = GNTST_general_error;
3136+ unmap.host_addr = map_ops[i].host_addr,
3137+ unmap.handle = map_ops[i].handle;
3138+ map_ops[i].handle = ~0;
3139+ if (map_ops[i].flags & GNTMAP_device_map)
3140+ unmap.dev_bus_addr = map_ops[i].dev_bus_addr;
3141+ else
3142+ unmap.dev_bus_addr = 0;
3143+
3144+ /*
3145+ * Pre-populate the status field, to be recognizable in
3146+ * the log message below.
3147+ */
3148+ unmap.status = 1;
3149+
3150+ rc = HYPERVISOR_grant_table_op(GNTTABOP_unmap_grant_ref,
3151+ &unmap, 1);
3152+ if (rc || unmap.status != GNTST_okay)
3153+ pr_err_once("gnttab unmap failed: rc=%d st=%d\n",
3154+ rc, unmap.status);
3155 }
3156
3157 return 0;
3158diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
3159index a813469..e4b35c4 100644
3160--- a/arch/arm64/Kconfig
3161+++ b/arch/arm64/Kconfig
3162@@ -494,7 +494,7 @@ config ARM64_ERRATUM_1024718
3163 help
3164 This option adds a workaround for ARM Cortex-A55 Erratum 1024718.
3165
3166- Affected Cortex-A55 cores (r0p0, r0p1, r1p0) could cause incorrect
3167+ Affected Cortex-A55 cores (all revisions) could cause incorrect
3168 update of the hardware dirty bit when the DBM/AP bits are updated
3169 without a break-before-make. The workaround is to disable the usage
3170 of hardware DBM locally on the affected cores. CPUs not affected by
3171diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms
3172index 16d7614..9dccf4d 100644
3173--- a/arch/arm64/Kconfig.platforms
3174+++ b/arch/arm64/Kconfig.platforms
3175@@ -54,6 +54,7 @@ config ARCH_BCM_IPROC
3176 config ARCH_BERLIN
3177 bool "Marvell Berlin SoC Family"
3178 select DW_APB_ICTL
3179+ select DW_APB_TIMER_OF
3180 select GPIOLIB
3181 select PINCTRL
3182 help
3183diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
3184index 96abe55..cd8f3cd 100644
3185--- a/arch/arm64/Makefile
3186+++ b/arch/arm64/Makefile
3187@@ -10,7 +10,7 @@
3188 #
3189 # Copyright (C) 1995-2001 by Russell King
3190
3191-LDFLAGS_vmlinux :=--no-undefined -X
3192+LDFLAGS_vmlinux :=--no-undefined -X -z norelro
3193 CPPFLAGS_vmlinux.lds = -DTEXT_OFFSET=$(TEXT_OFFSET)
3194 GZFLAGS :=-9
3195
3196@@ -18,7 +18,7 @@ ifeq ($(CONFIG_RELOCATABLE), y)
3197 # Pass --no-apply-dynamic-relocs to restore pre-binutils-2.27 behaviour
3198 # for relative relocs, since this leads to better Image compression
3199 # with the relocation offsets always being zero.
3200-LDFLAGS_vmlinux += -shared -Bsymbolic -z notext -z norelro \
3201+LDFLAGS_vmlinux += -shared -Bsymbolic -z notext \
3202 $(call ld-option, --no-apply-dynamic-relocs)
3203 endif
3204
3205diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
3206index 208373e..7d1e89e 100644
3207--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
3208+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
3209@@ -127,7 +127,7 @@
3210 &emac {
3211 pinctrl-names = "default";
3212 pinctrl-0 = <&rgmii_pins>;
3213- phy-mode = "rgmii";
3214+ phy-mode = "rgmii-id";
3215 phy-handle = <&ext_rgmii_phy>;
3216 phy-supply = <&reg_dc1sw>;
3217 status = "okay";
3218diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts
3219index 04446e4..a0db025 100644
3220--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts
3221+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts
3222@@ -129,7 +129,7 @@
3223 &emac {
3224 pinctrl-names = "default";
3225 pinctrl-0 = <&rgmii_pins>;
3226- phy-mode = "rgmii";
3227+ phy-mode = "rgmii-id";
3228 phy-handle = <&ext_rgmii_phy>;
3229 phy-supply = <&reg_gmac_3v3>;
3230 status = "okay";
3231diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts
3232index d5b6e81..5d0905f 100644
3233--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts
3234+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts
3235@@ -52,7 +52,7 @@
3236 &emac {
3237 pinctrl-names = "default";
3238 pinctrl-0 = <&rgmii_pins>;
3239- phy-mode = "rgmii";
3240+ phy-mode = "rgmii-txid";
3241 phy-handle = <&ext_rgmii_phy>;
3242 status = "okay";
3243 };
3244diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts
3245index 78c82a6..bb1de82 100644
3246--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts
3247+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts
3248@@ -103,8 +103,6 @@
3249 };
3250
3251 &ehci0 {
3252- phys = <&usbphy 0>;
3253- phy-names = "usb";
3254 status = "okay";
3255 };
3256
3257@@ -142,6 +140,7 @@
3258 pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pin>;
3259 vmmc-supply = <&reg_dcdc1>;
3260 vqmmc-supply = <&reg_eldo1>;
3261+ max-frequency = <200000000>;
3262 bus-width = <8>;
3263 non-removable;
3264 cap-mmc-hw-reset;
3265@@ -150,8 +149,6 @@
3266 };
3267
3268 &ohci0 {
3269- phys = <&usbphy 0>;
3270- phy-names = "usb";
3271 status = "okay";
3272 };
3273
3274diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi
3275index 9d20e13..d935e30 100644
3276--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi
3277+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi
3278@@ -55,7 +55,6 @@
3279 pinctrl-names = "default";
3280 pinctrl-0 = <&mmc0_pins>;
3281 vmmc-supply = <&reg_dcdc1>;
3282- non-removable;
3283 disable-wp;
3284 bus-width = <4>;
3285 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
3286diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
3287index 367699c..cf9e323 100644
3288--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
3289+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
3290@@ -476,7 +476,7 @@
3291 resets = <&ccu RST_BUS_MMC2>;
3292 reset-names = "ahb";
3293 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
3294- max-frequency = <200000000>;
3295+ max-frequency = <150000000>;
3296 status = "disabled";
3297 #address-cells = <1>;
3298 #size-cells = <0>;
3299@@ -530,6 +530,8 @@
3300 <&ccu CLK_USB_OHCI0>;
3301 resets = <&ccu RST_BUS_OHCI0>,
3302 <&ccu RST_BUS_EHCI0>;
3303+ phys = <&usbphy 0>;
3304+ phy-names = "usb";
3305 status = "disabled";
3306 };
3307
3308@@ -540,6 +542,8 @@
3309 clocks = <&ccu CLK_BUS_OHCI0>,
3310 <&ccu CLK_USB_OHCI0>;
3311 resets = <&ccu RST_BUS_OHCI0>;
3312+ phys = <&usbphy 0>;
3313+ phy-names = "usb";
3314 status = "disabled";
3315 };
3316
3317diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
3318index e126c1c..4d357b8 100644
3319--- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
3320+++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
3321@@ -157,7 +157,7 @@
3322 pinctrl-0 = <&emac_rgmii_pins>;
3323 phy-supply = <&reg_gmac_3v3>;
3324 phy-handle = <&ext_rgmii_phy>;
3325- phy-mode = "rgmii";
3326+ phy-mode = "rgmii-id";
3327 status = "okay";
3328 };
3329
3330diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts
3331index d9b3ed2..f103403 100644
3332--- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts
3333+++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts
3334@@ -164,7 +164,7 @@
3335 pinctrl-0 = <&emac_rgmii_pins>;
3336 phy-supply = <&reg_gmac_3v3>;
3337 phy-handle = <&ext_rgmii_phy>;
3338- phy-mode = "rgmii";
3339+ phy-mode = "rgmii-id";
3340 status = "okay";
3341 };
3342
3343diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts
3344index 1d05d57..0a04730 100644
3345--- a/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts
3346+++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts
3347@@ -83,7 +83,7 @@
3348 &emac {
3349 pinctrl-names = "default";
3350 pinctrl-0 = <&ext_rgmii_pins>;
3351- phy-mode = "rgmii";
3352+ phy-mode = "rgmii-id";
3353 phy-handle = <&ext_rgmii_phy>;
3354 phy-supply = <&reg_aldo2>;
3355 status = "okay";
3356diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts
3357index 30102da..3f2882b 100644
3358--- a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts
3359+++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts
3360@@ -66,7 +66,7 @@
3361 &emac {
3362 pinctrl-names = "default";
3363 pinctrl-0 = <&ext_rgmii_pins>;
3364- phy-mode = "rgmii";
3365+ phy-mode = "rgmii-id";
3366 phy-handle = <&ext_rgmii_phy>;
3367 phy-supply = <&reg_aldo2>;
3368 allwinner,rx-delay-ps = <200>;
3369diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
3370index ab081ef..1583cd5 100644
3371--- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
3372+++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
3373@@ -332,6 +332,7 @@
3374 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
3375 pinctrl-names = "default";
3376 pinctrl-0 = <&mmc0_pins>;
3377+ max-frequency = <150000000>;
3378 status = "disabled";
3379 #address-cells = <1>;
3380 #size-cells = <0>;
3381@@ -348,6 +349,7 @@
3382 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
3383 pinctrl-names = "default";
3384 pinctrl-0 = <&mmc1_pins>;
3385+ max-frequency = <150000000>;
3386 status = "disabled";
3387 #address-cells = <1>;
3388 #size-cells = <0>;
3389@@ -364,6 +366,7 @@
3390 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
3391 pinctrl-names = "default";
3392 pinctrl-0 = <&mmc2_pins>;
3393+ max-frequency = <150000000>;
3394 status = "disabled";
3395 #address-cells = <1>;
3396 #size-cells = <0>;
3397@@ -533,6 +536,8 @@
3398 <&ccu CLK_USB_OHCI0>;
3399 resets = <&ccu RST_BUS_OHCI0>,
3400 <&ccu RST_BUS_EHCI0>;
3401+ phys = <&usb2phy 0>;
3402+ phy-names = "usb";
3403 status = "disabled";
3404 };
3405
3406@@ -543,6 +548,8 @@
3407 clocks = <&ccu CLK_BUS_OHCI0>,
3408 <&ccu CLK_USB_OHCI0>;
3409 resets = <&ccu RST_BUS_OHCI0>;
3410+ phys = <&usb2phy 0>;
3411+ phy-names = "usb";
3412 status = "disabled";
3413 };
3414
3415diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
3416index 1234bc7..9533c85 100644
3417--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
3418+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
3419@@ -167,6 +167,8 @@
3420 hwrng: rng@218 {
3421 compatible = "amlogic,meson-rng";
3422 reg = <0x0 0x218 0x0 0x4>;
3423+ clocks = <&clkc CLKID_RNG0>;
3424+ clock-names = "core";
3425 };
3426 };
3427
3428@@ -2380,7 +2382,7 @@
3429 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
3430 dr_mode = "host";
3431 snps,dis_u2_susphy_quirk;
3432- snps,quirk-frame-length-adjustment;
3433+ snps,quirk-frame-length-adjustment = <0x20>;
3434 snps,parkmode-disable-ss-quirk;
3435 };
3436 };
3437diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts b/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts
3438index 17155fb..c48125b 100644
3439--- a/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts
3440+++ b/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts
3441@@ -340,7 +340,7 @@
3442 eee-broken-1000t;
3443
3444 reset-assert-us = <10000>;
3445- reset-deassert-us = <30000>;
3446+ reset-deassert-us = <80000>;
3447 reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
3448
3449 interrupt-parent = <&gpio_intc>;
3450diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts
3451index 233eb1c..d94b695 100644
3452--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts
3453+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts
3454@@ -165,7 +165,7 @@
3455 reg = <0>;
3456
3457 reset-assert-us = <10000>;
3458- reset-deassert-us = <30000>;
3459+ reset-deassert-us = <80000>;
3460 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
3461
3462 interrupt-parent = <&gpio_intc>;
3463diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
3464index b0b12e3..8828acb 100644
3465--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
3466+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
3467@@ -138,7 +138,7 @@
3468 reg = <0>;
3469
3470 reset-assert-us = <10000>;
3471- reset-deassert-us = <30000>;
3472+ reset-deassert-us = <80000>;
3473 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
3474
3475 interrupt-parent = <&gpio_intc>;
3476diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
3477index 43b11e3..2997621 100644
3478--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
3479+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
3480@@ -126,7 +126,7 @@
3481 reg = <0>;
3482
3483 reset-assert-us = <10000>;
3484- reset-deassert-us = <30000>;
3485+ reset-deassert-us = <80000>;
3486 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
3487
3488 interrupt-parent = <&gpio_intc>;
3489diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi
3490index 4c53988..e3d1756 100644
3491--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi
3492+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi
3493@@ -147,7 +147,7 @@
3494 reg = <0>;
3495
3496 reset-assert-us = <10000>;
3497- reset-deassert-us = <30000>;
3498+ reset-deassert-us = <80000>;
3499 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
3500 };
3501 };
3502diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts
3503index b08c453..b2ab05c 100644
3504--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts
3505+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts
3506@@ -82,7 +82,7 @@
3507
3508 /* External PHY reset is shared with internal PHY Led signal */
3509 reset-assert-us = <10000>;
3510- reset-deassert-us = <30000>;
3511+ reset-deassert-us = <80000>;
3512 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
3513
3514 interrupt-parent = <&gpio_intc>;
3515diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
3516index 3f43716..c8a4205 100644
3517--- a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
3518+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
3519@@ -251,7 +251,7 @@
3520 reg = <0>;
3521
3522 reset-assert-us = <10000>;
3523- reset-deassert-us = <30000>;
3524+ reset-deassert-us = <80000>;
3525 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
3526
3527 interrupt-parent = <&gpio_intc>;
3528@@ -395,7 +395,7 @@
3529 #size-cells = <1>;
3530 compatible = "winbond,w25q16", "jedec,spi-nor";
3531 reg = <0>;
3532- spi-max-frequency = <3000000>;
3533+ spi-max-frequency = <104000000>;
3534 };
3535 };
3536
3537diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
3538index c2bd4db..8dccf91 100644
3539--- a/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
3540+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
3541@@ -112,7 +112,7 @@
3542 max-speed = <1000>;
3543
3544 reset-assert-us = <10000>;
3545- reset-deassert-us = <30000>;
3546+ reset-deassert-us = <80000>;
3547 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
3548 };
3549 };
3550diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts
3551index ea45ae0..8edbfe0 100644
3552--- a/arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts
3553+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts
3554@@ -64,7 +64,7 @@
3555
3556 /* External PHY reset is shared with internal PHY Led signal */
3557 reset-assert-us = <10000>;
3558- reset-deassert-us = <30000>;
3559+ reset-deassert-us = <80000>;
3560 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
3561
3562 interrupt-parent = <&gpio_intc>;
3563diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts
3564index 5cd4d35..f72d29e 100644
3565--- a/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts
3566+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts
3567@@ -114,7 +114,7 @@
3568 max-speed = <1000>;
3569
3570 reset-assert-us = <10000>;
3571- reset-deassert-us = <30000>;
3572+ reset-deassert-us = <80000>;
3573 reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
3574 };
3575 };
3576diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi b/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi
3577index 521573f..8ba3555 100644
3578--- a/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi
3579+++ b/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi
3580@@ -90,7 +90,7 @@
3581 opp-microvolt = <790000>;
3582 };
3583
3584- opp-1512000000 {
3585+ opp-1500000000 {
3586 opp-hz = /bits/ 64 <1500000000>;
3587 opp-microvolt = <800000>;
3588 };
3589diff --git a/arch/arm64/boot/dts/broadcom/stingray/stingray-usb.dtsi b/arch/arm64/boot/dts/broadcom/stingray/stingray-usb.dtsi
3590index 55259f9..5401a64 100644
3591--- a/arch/arm64/boot/dts/broadcom/stingray/stingray-usb.dtsi
3592+++ b/arch/arm64/boot/dts/broadcom/stingray/stingray-usb.dtsi
3593@@ -4,21 +4,26 @@
3594 */
3595 usb {
3596 compatible = "simple-bus";
3597- dma-ranges;
3598- #address-cells = <1>;
3599- #size-cells = <1>;
3600- ranges = <0x0 0x0 0x68500000 0x00400000>;
3601+ #address-cells = <2>;
3602+ #size-cells = <2>;
3603+ ranges = <0x0 0x0 0x0 0x68500000 0x0 0x00400000>;
3604+
3605+ /*
3606+ * Internally, USB bus to the interconnect can only address up
3607+ * to 40-bit
3608+ */
3609+ dma-ranges = <0 0 0 0 0x100 0x0>;
3610
3611 usbphy0: usb-phy@0 {
3612 compatible = "brcm,sr-usb-combo-phy";
3613- reg = <0x00000000 0x100>;
3614+ reg = <0x0 0x00000000 0x0 0x100>;
3615 #phy-cells = <1>;
3616 status = "disabled";
3617 };
3618
3619 xhci0: usb@1000 {
3620 compatible = "generic-xhci";
3621- reg = <0x00001000 0x1000>;
3622+ reg = <0x0 0x00001000 0x0 0x1000>;
3623 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>;
3624 phys = <&usbphy0 1>, <&usbphy0 0>;
3625 phy-names = "phy0", "phy1";
3626@@ -28,7 +33,7 @@
3627
3628 bdc0: usb@2000 {
3629 compatible = "brcm,bdc-v0.16";
3630- reg = <0x00002000 0x1000>;
3631+ reg = <0x0 0x00002000 0x0 0x1000>;
3632 interrupts = <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>;
3633 phys = <&usbphy0 0>, <&usbphy0 1>;
3634 phy-names = "phy0", "phy1";
3635@@ -38,21 +43,21 @@
3636
3637 usbphy1: usb-phy@10000 {
3638 compatible = "brcm,sr-usb-combo-phy";
3639- reg = <0x00010000 0x100>;
3640+ reg = <0x0 0x00010000 0x0 0x100>;
3641 #phy-cells = <1>;
3642 status = "disabled";
3643 };
3644
3645 usbphy2: usb-phy@20000 {
3646 compatible = "brcm,sr-usb-hs-phy";
3647- reg = <0x00020000 0x100>;
3648+ reg = <0x0 0x00020000 0x0 0x100>;
3649 #phy-cells = <0>;
3650 status = "disabled";
3651 };
3652
3653 xhci1: usb@11000 {
3654 compatible = "generic-xhci";
3655- reg = <0x00011000 0x1000>;
3656+ reg = <0x0 0x00011000 0x0 0x1000>;
3657 interrupts = <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>;
3658 phys = <&usbphy1 1>, <&usbphy2>, <&usbphy1 0>;
3659 phy-names = "phy0", "phy1", "phy2";
3660@@ -62,7 +67,7 @@
3661
3662 bdc1: usb@21000 {
3663 compatible = "brcm,bdc-v0.16";
3664- reg = <0x00021000 0x1000>;
3665+ reg = <0x0 0x00021000 0x0 0x1000>;
3666 interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
3667 phys = <&usbphy2>;
3668 phy-names = "phy0";
3669diff --git a/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi b/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
3670index 6f90b0e..148bdca 100644
3671--- a/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
3672+++ b/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
3673@@ -389,7 +389,7 @@
3674 s2mps13-pmic@66 {
3675 compatible = "samsung,s2mps13-pmic";
3676 interrupt-parent = <&gpa0>;
3677- interrupts = <7 IRQ_TYPE_NONE>;
3678+ interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
3679 reg = <0x66>;
3680 samsung,s2mps11-wrstbi-ground;
3681
3682diff --git a/arch/arm64/boot/dts/exynos/exynos7-espresso.dts b/arch/arm64/boot/dts/exynos/exynos7-espresso.dts
3683index 61ee7b6..09aead2 100644
3684--- a/arch/arm64/boot/dts/exynos/exynos7-espresso.dts
3685+++ b/arch/arm64/boot/dts/exynos/exynos7-espresso.dts
3686@@ -90,7 +90,7 @@
3687 s2mps15_pmic@66 {
3688 compatible = "samsung,s2mps15-pmic";
3689 reg = <0x66>;
3690- interrupts = <2 IRQ_TYPE_NONE>;
3691+ interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
3692 interrupt-parent = <&gpa0>;
3693 pinctrl-names = "default";
3694 pinctrl-0 = <&pmic_irq>;
3695diff --git a/arch/arm64/boot/dts/exynos/exynos7.dtsi b/arch/arm64/boot/dts/exynos/exynos7.dtsi
3696index 0821489..25549d9 100644
3697--- a/arch/arm64/boot/dts/exynos/exynos7.dtsi
3698+++ b/arch/arm64/boot/dts/exynos/exynos7.dtsi
3699@@ -90,8 +90,10 @@
3700 };
3701
3702 psci {
3703- compatible = "arm,psci-0.2";
3704+ compatible = "arm,psci";
3705 method = "smc";
3706+ cpu_off = <0x84000002>;
3707+ cpu_on = <0xC4000003>;
3708 };
3709
3710 soc: soc {
3711@@ -494,13 +496,6 @@
3712 pmu_system_controller: system-controller@105c0000 {
3713 compatible = "samsung,exynos7-pmu", "syscon";
3714 reg = <0x105c0000 0x5000>;
3715-
3716- reboot: syscon-reboot {
3717- compatible = "syscon-reboot";
3718- regmap = <&pmu_system_controller>;
3719- offset = <0x0400>;
3720- mask = <0x1>;
3721- };
3722 };
3723
3724 rtc: rtc@10590000 {
3725@@ -650,3 +645,4 @@
3726 };
3727
3728 #include "exynos7-pinctrl.dtsi"
3729+#include "arm/exynos-syscon-restart.dtsi"
3730diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
3731index 9589b15..bd99fa6 100644
3732--- a/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
3733+++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
3734@@ -103,7 +103,7 @@
3735 reboot {
3736 compatible ="syscon-reboot";
3737 regmap = <&rst>;
3738- offset = <0xb0>;
3739+ offset = <0>;
3740 mask = <0x02>;
3741 };
3742
3743@@ -673,7 +673,7 @@
3744 ethernet@0,4 {
3745 compatible = "fsl,enetc-ptp";
3746 reg = <0x000400 0 0 0 0>;
3747- clocks = <&clockgen 4 0>;
3748+ clocks = <&clockgen 2 3>;
3749 little-endian;
3750 };
3751 };
3752diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
3753index d4c1da3..04d4b1b 100644
3754--- a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
3755+++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
3756@@ -304,7 +304,7 @@
3757
3758 dcfg: dcfg@1ee0000 {
3759 compatible = "fsl,ls1046a-dcfg", "syscon";
3760- reg = <0x0 0x1ee0000 0x0 0x10000>;
3761+ reg = <0x0 0x1ee0000 0x0 0x1000>;
3762 big-endian;
3763 };
3764
3765diff --git a/arch/arm64/boot/dts/freescale/imx8mm.dtsi b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
3766index fde1849..7b178a7 100644
3767--- a/arch/arm64/boot/dts/freescale/imx8mm.dtsi
3768+++ b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
3769@@ -126,7 +126,7 @@
3770
3771 opp-1600000000 {
3772 opp-hz = /bits/ 64 <1600000000>;
3773- opp-microvolt = <900000>;
3774+ opp-microvolt = <950000>;
3775 opp-supported-hw = <0xc>, <0x7>;
3776 clock-latency-ns = <150000>;
3777 opp-suspend;
3778diff --git a/arch/arm64/boot/dts/freescale/imx8mn.dtsi b/arch/arm64/boot/dts/freescale/imx8mn.dtsi
3779index ac3a3b3..546511b 100644
3780--- a/arch/arm64/boot/dts/freescale/imx8mn.dtsi
3781+++ b/arch/arm64/boot/dts/freescale/imx8mn.dtsi
3782@@ -677,28 +677,6 @@
3783 #index-cells = <1>;
3784 reg = <0x32e40200 0x200>;
3785 };
3786-
3787- usbotg2: usb@32e50000 {
3788- compatible = "fsl,imx8mn-usb", "fsl,imx7d-usb";
3789- reg = <0x32e50000 0x200>;
3790- interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
3791- clocks = <&clk IMX8MN_CLK_USB1_CTRL_ROOT>;
3792- clock-names = "usb1_ctrl_root_clk";
3793- assigned-clocks = <&clk IMX8MN_CLK_USB_BUS>,
3794- <&clk IMX8MN_CLK_USB_CORE_REF>;
3795- assigned-clock-parents = <&clk IMX8MN_SYS_PLL2_500M>,
3796- <&clk IMX8MN_SYS_PLL1_100M>;
3797- fsl,usbphy = <&usbphynop2>;
3798- fsl,usbmisc = <&usbmisc2 0>;
3799- status = "disabled";
3800- };
3801-
3802- usbmisc2: usbmisc@32e50200 {
3803- compatible = "fsl,imx8mn-usbmisc", "fsl,imx7d-usbmisc";
3804- #index-cells = <1>;
3805- reg = <0x32e50200 0x200>;
3806- };
3807-
3808 };
3809
3810 dma_apbh: dma-controller@33000000 {
3811@@ -747,12 +725,4 @@
3812 assigned-clock-parents = <&clk IMX8MN_SYS_PLL1_100M>;
3813 clock-names = "main_clk";
3814 };
3815-
3816- usbphynop2: usbphynop2 {
3817- compatible = "usb-nop-xceiv";
3818- clocks = <&clk IMX8MN_CLK_USB_PHY_REF>;
3819- assigned-clocks = <&clk IMX8MN_CLK_USB_PHY_REF>;
3820- assigned-clock-parents = <&clk IMX8MN_SYS_PLL1_100M>;
3821- clock-names = "main_clk";
3822- };
3823 };
3824diff --git a/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts b/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts
3825index 05dc58c..6226e7e 100644
3826--- a/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts
3827+++ b/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts
3828@@ -21,6 +21,10 @@
3829
3830 aliases {
3831 ethernet0 = &eth0;
3832+ /* for dsa slave device */
3833+ ethernet1 = &switch0port1;
3834+ ethernet2 = &switch0port2;
3835+ ethernet3 = &switch0port3;
3836 serial0 = &uart0;
3837 serial1 = &uart1;
3838 };
3839@@ -147,7 +151,7 @@
3840 #address-cells = <1>;
3841 #size-cells = <0>;
3842
3843- port@0 {
3844+ switch0port0: port@0 {
3845 reg = <0>;
3846 label = "cpu";
3847 ethernet = <&eth0>;
3848@@ -158,19 +162,19 @@
3849 };
3850 };
3851
3852- port@1 {
3853+ switch0port1: port@1 {
3854 reg = <1>;
3855 label = "wan";
3856 phy-handle = <&switch0phy0>;
3857 };
3858
3859- port@2 {
3860+ switch0port2: port@2 {
3861 reg = <2>;
3862 label = "lan0";
3863 phy-handle = <&switch0phy1>;
3864 };
3865
3866- port@3 {
3867+ switch0port3: port@3 {
3868 reg = <3>;
3869 label = "lan1";
3870 phy-handle = <&switch0phy2>;
3871diff --git a/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts b/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
3872index c366818..fad70c2 100644
3873--- a/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
3874+++ b/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
3875@@ -144,7 +144,7 @@
3876 pinctrl-names = "default";
3877 pinctrl-0 = <&rgmii_pins>;
3878 phy-mode = "rgmii-id";
3879- phy = <&phy1>;
3880+ phy-handle = <&phy1>;
3881 status = "okay";
3882 };
3883
3884@@ -202,7 +202,7 @@
3885 };
3886
3887 partition@20000 {
3888- label = "u-boot";
3889+ label = "a53-firmware";
3890 reg = <0x20000 0x160000>;
3891 };
3892
3893diff --git a/arch/arm64/boot/dts/mediatek/mt7622.dtsi b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
3894index 7cd8c3f..e7e002d 100644
3895--- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi
3896+++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
3897@@ -698,6 +698,8 @@
3898 clocks = <&pericfg CLK_PERI_MSDC30_1_PD>,
3899 <&topckgen CLK_TOP_AXI_SEL>;
3900 clock-names = "source", "hclk";
3901+ resets = <&pericfg MT7622_PERI_MSDC1_SW_RST>;
3902+ reset-names = "hrst";
3903 status = "disabled";
3904 };
3905
3906diff --git a/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts b/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts
3907index bdace01..9df4782 100644
3908--- a/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts
3909+++ b/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts
3910@@ -10,18 +10,6 @@
3911 model = "NVIDIA Jetson TX2 Developer Kit";
3912 compatible = "nvidia,p2771-0000", "nvidia,tegra186";
3913
3914- aconnect {
3915- status = "okay";
3916-
3917- dma-controller@2930000 {
3918- status = "okay";
3919- };
3920-
3921- interrupt-controller@2a40000 {
3922- status = "okay";
3923- };
3924- };
3925-
3926 i2c@3160000 {
3927 power-monitor@42 {
3928 compatible = "ti,ina3221";
3929diff --git a/arch/arm64/boot/dts/nvidia/tegra194.dtsi b/arch/arm64/boot/dts/nvidia/tegra194.dtsi
3930index 5728255..0821754 100644
3931--- a/arch/arm64/boot/dts/nvidia/tegra194.dtsi
3932+++ b/arch/arm64/boot/dts/nvidia/tegra194.dtsi
3933@@ -144,7 +144,7 @@
3934 nvidia,schmitt = <TEGRA_PIN_DISABLE>;
3935 nvidia,lpdr = <TEGRA_PIN_ENABLE>;
3936 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
3937- nvidia,io-high-voltage = <TEGRA_PIN_ENABLE>;
3938+ nvidia,io-hv = <TEGRA_PIN_ENABLE>;
3939 nvidia,tristate = <TEGRA_PIN_DISABLE>;
3940 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
3941 };
3942@@ -156,7 +156,7 @@
3943 nvidia,schmitt = <TEGRA_PIN_DISABLE>;
3944 nvidia,lpdr = <TEGRA_PIN_ENABLE>;
3945 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
3946- nvidia,io-high-voltage = <TEGRA_PIN_ENABLE>;
3947+ nvidia,io-hv = <TEGRA_PIN_ENABLE>;
3948 nvidia,tristate = <TEGRA_PIN_DISABLE>;
3949 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
3950 };
3951@@ -692,7 +692,7 @@
3952
3953 hsp_aon: hsp@c150000 {
3954 compatible = "nvidia,tegra194-hsp", "nvidia,tegra186-hsp";
3955- reg = <0x0c150000 0xa0000>;
3956+ reg = <0x0c150000 0x90000>;
3957 interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
3958 <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
3959 <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
3960diff --git a/arch/arm64/boot/dts/nvidia/tegra210.dtsi b/arch/arm64/boot/dts/nvidia/tegra210.dtsi
3961index 078d250..8a02b26 100644
3962--- a/arch/arm64/boot/dts/nvidia/tegra210.dtsi
3963+++ b/arch/arm64/boot/dts/nvidia/tegra210.dtsi
3964@@ -917,6 +917,7 @@
3965 <&tegra_car 128>, /* hda2hdmi */
3966 <&tegra_car 111>; /* hda2codec_2x */
3967 reset-names = "hda", "hda2hdmi", "hda2codec_2x";
3968+ power-domains = <&pd_sor>;
3969 status = "disabled";
3970 };
3971
3972diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi
3973index d95273a..449843f 100644
3974--- a/arch/arm64/boot/dts/qcom/msm8916.dtsi
3975+++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi
3976@@ -53,7 +53,7 @@
3977 no-map;
3978 };
3979
3980- reserved@8668000 {
3981+ reserved@86680000 {
3982 reg = <0x0 0x86680000 0x0 0x80000>;
3983 no-map;
3984 };
3985@@ -66,7 +66,7 @@
3986 qcom,client-id = <1>;
3987 };
3988
3989- rfsa@867e00000 {
3990+ rfsa@867e0000 {
3991 reg = <0x0 0x867e0000 0x0 0x20000>;
3992 no-map;
3993 };
3994diff --git a/arch/arm64/boot/dts/qcom/sdm845-db845c.dts b/arch/arm64/boot/dts/qcom/sdm845-db845c.dts
3995index 751651a..bf4fde8 100644
3996--- a/arch/arm64/boot/dts/qcom/sdm845-db845c.dts
3997+++ b/arch/arm64/boot/dts/qcom/sdm845-db845c.dts
3998@@ -337,7 +337,9 @@
3999 &gcc {
4000 protected-clocks = <GCC_QSPI_CORE_CLK>,
4001 <GCC_QSPI_CORE_CLK_SRC>,
4002- <GCC_QSPI_CNOC_PERIPH_AHB_CLK>;
4003+ <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
4004+ <GCC_LPASS_Q6_AXI_CLK>,
4005+ <GCC_LPASS_SWAY_CLK>;
4006 };
4007
4008 &pm8998_gpio {
4009diff --git a/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
4010index ded120d..840d6b9 100644
4011--- a/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
4012+++ b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
4013@@ -232,7 +232,9 @@
4014 &gcc {
4015 protected-clocks = <GCC_QSPI_CORE_CLK>,
4016 <GCC_QSPI_CORE_CLK_SRC>,
4017- <GCC_QSPI_CNOC_PERIPH_AHB_CLK>;
4018+ <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
4019+ <GCC_LPASS_Q6_AXI_CLK>,
4020+ <GCC_LPASS_SWAY_CLK>;
4021 };
4022
4023 &i2c1 {
4024@@ -243,24 +245,23 @@
4025 &i2c3 {
4026 status = "okay";
4027 clock-frequency = <400000>;
4028+ /* Overwrite pinctrl-0 from sdm845.dtsi */
4029+ pinctrl-0 = <&qup_i2c3_default &i2c3_hid_active>;
4030
4031- hid@15 {
4032+ tsel: hid@15 {
4033 compatible = "hid-over-i2c";
4034 reg = <0x15>;
4035 hid-descr-addr = <0x1>;
4036
4037- interrupts-extended = <&tlmm 37 IRQ_TYPE_EDGE_RISING>;
4038+ interrupts-extended = <&tlmm 37 IRQ_TYPE_LEVEL_HIGH>;
4039 };
4040
4041- hid@2c {
4042+ tsc2: hid@2c {
4043 compatible = "hid-over-i2c";
4044 reg = <0x2c>;
4045 hid-descr-addr = <0x20>;
4046
4047- interrupts-extended = <&tlmm 37 IRQ_TYPE_EDGE_RISING>;
4048-
4049- pinctrl-names = "default";
4050- pinctrl-0 = <&i2c2_hid_active>;
4051+ interrupts-extended = <&tlmm 37 IRQ_TYPE_LEVEL_HIGH>;
4052 };
4053 };
4054
4055@@ -268,15 +269,15 @@
4056 status = "okay";
4057 clock-frequency = <400000>;
4058
4059- hid@10 {
4060+ tsc1: hid@10 {
4061 compatible = "hid-over-i2c";
4062 reg = <0x10>;
4063 hid-descr-addr = <0x1>;
4064
4065- interrupts-extended = <&tlmm 125 IRQ_TYPE_EDGE_FALLING>;
4066+ interrupts-extended = <&tlmm 125 IRQ_TYPE_LEVEL_LOW>;
4067
4068 pinctrl-names = "default";
4069- pinctrl-0 = <&i2c6_hid_active>;
4070+ pinctrl-0 = <&i2c5_hid_active>;
4071 };
4072 };
4073
4074@@ -284,7 +285,7 @@
4075 status = "okay";
4076 clock-frequency = <400000>;
4077
4078- hid@5c {
4079+ ecsh: hid@5c {
4080 compatible = "hid-over-i2c";
4081 reg = <0x5c>;
4082 hid-descr-addr = <0x1>;
4083@@ -292,7 +293,7 @@
4084 interrupts-extended = <&tlmm 92 IRQ_TYPE_LEVEL_LOW>;
4085
4086 pinctrl-names = "default";
4087- pinctrl-0 = <&i2c12_hid_active>;
4088+ pinctrl-0 = <&i2c11_hid_active>;
4089 };
4090 };
4091
4092@@ -335,7 +336,7 @@
4093 &tlmm {
4094 gpio-reserved-ranges = <0 4>, <81 4>;
4095
4096- i2c2_hid_active: i2c2-hid-active {
4097+ i2c3_hid_active: i2c2-hid-active {
4098 pins = <37>;
4099 function = "gpio";
4100
4101@@ -344,7 +345,7 @@
4102 drive-strength = <2>;
4103 };
4104
4105- i2c6_hid_active: i2c6-hid-active {
4106+ i2c5_hid_active: i2c5-hid-active {
4107 pins = <125>;
4108 function = "gpio";
4109
4110@@ -353,7 +354,7 @@
4111 drive-strength = <2>;
4112 };
4113
4114- i2c12_hid_active: i2c12-hid-active {
4115+ i2c11_hid_active: i2c11-hid-active {
4116 pins = <92>;
4117 function = "gpio";
4118
4119diff --git a/arch/arm64/boot/dts/renesas/cat875.dtsi b/arch/arm64/boot/dts/renesas/cat875.dtsi
4120index aaefc3a..dbdb8b0 100644
4121--- a/arch/arm64/boot/dts/renesas/cat875.dtsi
4122+++ b/arch/arm64/boot/dts/renesas/cat875.dtsi
4123@@ -22,7 +22,6 @@
4124 status = "okay";
4125
4126 phy0: ethernet-phy@0 {
4127- rxc-skew-ps = <1500>;
4128 reg = <0>;
4129 interrupt-parent = <&gpio2>;
4130 interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
4131diff --git a/arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi b/arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi
4132index 4280b19..6a001cd 100644
4133--- a/arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi
4134+++ b/arch/arm64/boot/dts/renesas/hihope-rzg2-ex.dtsi
4135@@ -23,7 +23,6 @@
4136 status = "okay";
4137
4138 phy0: ethernet-phy@0 {
4139- rxc-skew-ps = <1500>;
4140 reg = <0>;
4141 interrupt-parent = <&gpio2>;
4142 interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
4143diff --git a/arch/arm64/boot/dts/renesas/ulcb.dtsi b/arch/arm64/boot/dts/renesas/ulcb.dtsi
4144index 3ef8917..d8fccf3 100644
4145--- a/arch/arm64/boot/dts/renesas/ulcb.dtsi
4146+++ b/arch/arm64/boot/dts/renesas/ulcb.dtsi
4147@@ -470,6 +470,7 @@
4148 mmc-hs200-1_8v;
4149 mmc-hs400-1_8v;
4150 non-removable;
4151+ full-pwr-cycle-in-suspend;
4152 status = "okay";
4153 };
4154
4155diff --git a/arch/arm64/boot/dts/rockchip/px30.dtsi b/arch/arm64/boot/dts/rockchip/px30.dtsi
4156index 9e09909..98b014a 100644
4157--- a/arch/arm64/boot/dts/rockchip/px30.dtsi
4158+++ b/arch/arm64/boot/dts/rockchip/px30.dtsi
4159@@ -860,7 +860,7 @@
4160 vopl_mmu: iommu@ff470f00 {
4161 compatible = "rockchip,iommu";
4162 reg = <0x0 0xff470f00 0x0 0x100>;
4163- interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
4164+ interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
4165 interrupt-names = "vopl_mmu";
4166 clocks = <&cru ACLK_VOPL>, <&cru HCLK_VOPL>;
4167 clock-names = "aclk", "hclk";
4168diff --git a/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts b/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts
4169index bb40c16..6c3368f 100644
4170--- a/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts
4171+++ b/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts
4172@@ -333,6 +333,7 @@
4173 };
4174
4175 &usb20_otg {
4176+ dr_mode = "host";
4177 status = "okay";
4178 };
4179
4180diff --git a/arch/arm64/boot/dts/rockchip/rk3328.dtsi b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
4181index 31cc154..e0ed323 100644
4182--- a/arch/arm64/boot/dts/rockchip/rk3328.dtsi
4183+++ b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
4184@@ -1190,8 +1190,8 @@
4185
4186 uart0 {
4187 uart0_xfer: uart0-xfer {
4188- rockchip,pins = <1 RK_PB1 1 &pcfg_pull_up>,
4189- <1 RK_PB0 1 &pcfg_pull_none>;
4190+ rockchip,pins = <1 RK_PB1 1 &pcfg_pull_none>,
4191+ <1 RK_PB0 1 &pcfg_pull_up>;
4192 };
4193
4194 uart0_cts: uart0-cts {
4195@@ -1209,8 +1209,8 @@
4196
4197 uart1 {
4198 uart1_xfer: uart1-xfer {
4199- rockchip,pins = <3 RK_PA4 4 &pcfg_pull_up>,
4200- <3 RK_PA6 4 &pcfg_pull_none>;
4201+ rockchip,pins = <3 RK_PA4 4 &pcfg_pull_none>,
4202+ <3 RK_PA6 4 &pcfg_pull_up>;
4203 };
4204
4205 uart1_cts: uart1-cts {
4206@@ -1228,15 +1228,15 @@
4207
4208 uart2-0 {
4209 uart2m0_xfer: uart2m0-xfer {
4210- rockchip,pins = <1 RK_PA0 2 &pcfg_pull_up>,
4211- <1 RK_PA1 2 &pcfg_pull_none>;
4212+ rockchip,pins = <1 RK_PA0 2 &pcfg_pull_none>,
4213+ <1 RK_PA1 2 &pcfg_pull_up>;
4214 };
4215 };
4216
4217 uart2-1 {
4218 uart2m1_xfer: uart2m1-xfer {
4219- rockchip,pins = <2 RK_PA0 1 &pcfg_pull_up>,
4220- <2 RK_PA1 1 &pcfg_pull_none>;
4221+ rockchip,pins = <2 RK_PA0 1 &pcfg_pull_none>,
4222+ <2 RK_PA1 1 &pcfg_pull_up>;
4223 };
4224 };
4225
4226diff --git a/arch/arm64/boot/dts/rockchip/rk3399.dtsi b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
4227index c5d8d1c..9d6ed8c 100644
4228--- a/arch/arm64/boot/dts/rockchip/rk3399.dtsi
4229+++ b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
4230@@ -29,6 +29,9 @@
4231 i2c6 = &i2c6;
4232 i2c7 = &i2c7;
4233 i2c8 = &i2c8;
4234+ mmc0 = &sdio0;
4235+ mmc1 = &sdmmc;
4236+ mmc2 = &sdhci;
4237 serial0 = &uart0;
4238 serial1 = &uart1;
4239 serial2 = &uart2;
4240@@ -229,6 +232,7 @@
4241 reg = <0x0 0xf8000000 0x0 0x2000000>,
4242 <0x0 0xfd000000 0x0 0x1000000>;
4243 reg-names = "axi-base", "apb-base";
4244+ device_type = "pci";
4245 #address-cells = <3>;
4246 #size-cells = <2>;
4247 #interrupt-cells = <1>;
4248@@ -247,7 +251,6 @@
4249 <0 0 0 2 &pcie0_intc 1>,
4250 <0 0 0 3 &pcie0_intc 2>,
4251 <0 0 0 4 &pcie0_intc 3>;
4252- linux,pci-domain = <0>;
4253 max-link-speed = <1>;
4254 msi-map = <0x0 &its 0x0 0x1000>;
4255 phys = <&pcie_phy 0>, <&pcie_phy 1>,
4256diff --git a/arch/arm64/crypto/aes-glue.c b/arch/arm64/crypto/aes-glue.c
4257index aa57dc6..aa13344 100644
4258--- a/arch/arm64/crypto/aes-glue.c
4259+++ b/arch/arm64/crypto/aes-glue.c
4260@@ -55,7 +55,7 @@ MODULE_DESCRIPTION("AES-ECB/CBC/CTR/XTS using ARMv8 Crypto Extensions");
4261 #define aes_mac_update neon_aes_mac_update
4262 MODULE_DESCRIPTION("AES-ECB/CBC/CTR/XTS using ARMv8 NEON");
4263 #endif
4264-#if defined(USE_V8_CRYPTO_EXTENSIONS) || !defined(CONFIG_CRYPTO_AES_ARM64_BS)
4265+#if defined(USE_V8_CRYPTO_EXTENSIONS) || !IS_ENABLED(CONFIG_CRYPTO_AES_ARM64_BS)
4266 MODULE_ALIAS_CRYPTO("ecb(aes)");
4267 MODULE_ALIAS_CRYPTO("cbc(aes)");
4268 MODULE_ALIAS_CRYPTO("ctr(aes)");
4269@@ -668,7 +668,7 @@ static int __maybe_unused xts_decrypt(struct skcipher_request *req)
4270 }
4271
4272 static struct skcipher_alg aes_algs[] = { {
4273-#if defined(USE_V8_CRYPTO_EXTENSIONS) || !defined(CONFIG_CRYPTO_AES_ARM64_BS)
4274+#if defined(USE_V8_CRYPTO_EXTENSIONS) || !IS_ENABLED(CONFIG_CRYPTO_AES_ARM64_BS)
4275 .base = {
4276 .cra_name = "__ecb(aes)",
4277 .cra_driver_name = "__ecb-aes-" MODE,
4278diff --git a/arch/arm64/crypto/sha1-ce-glue.c b/arch/arm64/crypto/sha1-ce-glue.c
4279index bdc1b6d..05cdad3 100644
4280--- a/arch/arm64/crypto/sha1-ce-glue.c
4281+++ b/arch/arm64/crypto/sha1-ce-glue.c
4282@@ -19,6 +19,7 @@
4283 MODULE_DESCRIPTION("SHA1 secure hash using ARMv8 Crypto Extensions");
4284 MODULE_AUTHOR("Ard Biesheuvel <ard.biesheuvel@linaro.org>");
4285 MODULE_LICENSE("GPL v2");
4286+MODULE_ALIAS_CRYPTO("sha1");
4287
4288 struct sha1_ce_state {
4289 struct sha1_state sst;
4290diff --git a/arch/arm64/crypto/sha2-ce-glue.c b/arch/arm64/crypto/sha2-ce-glue.c
4291index 604a01a..1de8029 100644
4292--- a/arch/arm64/crypto/sha2-ce-glue.c
4293+++ b/arch/arm64/crypto/sha2-ce-glue.c
4294@@ -19,6 +19,8 @@
4295 MODULE_DESCRIPTION("SHA-224/SHA-256 secure hash using ARMv8 Crypto Extensions");
4296 MODULE_AUTHOR("Ard Biesheuvel <ard.biesheuvel@linaro.org>");
4297 MODULE_LICENSE("GPL v2");
4298+MODULE_ALIAS_CRYPTO("sha224");
4299+MODULE_ALIAS_CRYPTO("sha256");
4300
4301 struct sha256_ce_state {
4302 struct sha256_state sst;
4303diff --git a/arch/arm64/crypto/sha3-ce-glue.c b/arch/arm64/crypto/sha3-ce-glue.c
4304index 9a4bbfc..ddf7aca 100644
4305--- a/arch/arm64/crypto/sha3-ce-glue.c
4306+++ b/arch/arm64/crypto/sha3-ce-glue.c
4307@@ -23,6 +23,10 @@
4308 MODULE_DESCRIPTION("SHA3 secure hash using ARMv8 Crypto Extensions");
4309 MODULE_AUTHOR("Ard Biesheuvel <ard.biesheuvel@linaro.org>");
4310 MODULE_LICENSE("GPL v2");
4311+MODULE_ALIAS_CRYPTO("sha3-224");
4312+MODULE_ALIAS_CRYPTO("sha3-256");
4313+MODULE_ALIAS_CRYPTO("sha3-384");
4314+MODULE_ALIAS_CRYPTO("sha3-512");
4315
4316 asmlinkage void sha3_ce_transform(u64 *st, const u8 *data, int blocks,
4317 int md_len);
4318diff --git a/arch/arm64/crypto/sha512-ce-glue.c b/arch/arm64/crypto/sha512-ce-glue.c
4319index 2369540..6dfcb4f 100644
4320--- a/arch/arm64/crypto/sha512-ce-glue.c
4321+++ b/arch/arm64/crypto/sha512-ce-glue.c
4322@@ -23,6 +23,8 @@
4323 MODULE_DESCRIPTION("SHA-384/SHA-512 secure hash using ARMv8 Crypto Extensions");
4324 MODULE_AUTHOR("Ard Biesheuvel <ard.biesheuvel@linaro.org>");
4325 MODULE_LICENSE("GPL v2");
4326+MODULE_ALIAS_CRYPTO("sha384");
4327+MODULE_ALIAS_CRYPTO("sha512");
4328
4329 asmlinkage void sha512_ce_transform(struct sha512_state *sst, u8 const *src,
4330 int blocks);
4331diff --git a/arch/arm64/include/asm/assembler.h b/arch/arm64/include/asm/assembler.h
4332index b8cf7c8..4a4258f 100644
4333--- a/arch/arm64/include/asm/assembler.h
4334+++ b/arch/arm64/include/asm/assembler.h
4335@@ -462,6 +462,7 @@ USER(\label, ic ivau, \tmp2) // invalidate I line PoU
4336 .endm
4337
4338 /*
4339+ * Deprecated! Use SYM_FUNC_{START,START_WEAK,END}_PI instead.
4340 * Annotate a function as position independent, i.e., safe to be called before
4341 * the kernel virtual mapping is activated.
4342 */
4343diff --git a/arch/arm64/include/asm/atomic.h b/arch/arm64/include/asm/atomic.h
4344index 9543b5e..6e0f48d 100644
4345--- a/arch/arm64/include/asm/atomic.h
4346+++ b/arch/arm64/include/asm/atomic.h
4347@@ -17,7 +17,7 @@
4348 #include <asm/lse.h>
4349
4350 #define ATOMIC_OP(op) \
4351-static inline void arch_##op(int i, atomic_t *v) \
4352+static __always_inline void arch_##op(int i, atomic_t *v) \
4353 { \
4354 __lse_ll_sc_body(op, i, v); \
4355 }
4356@@ -32,7 +32,7 @@ ATOMIC_OP(atomic_sub)
4357 #undef ATOMIC_OP
4358
4359 #define ATOMIC_FETCH_OP(name, op) \
4360-static inline int arch_##op##name(int i, atomic_t *v) \
4361+static __always_inline int arch_##op##name(int i, atomic_t *v) \
4362 { \
4363 return __lse_ll_sc_body(op##name, i, v); \
4364 }
4365@@ -56,7 +56,7 @@ ATOMIC_FETCH_OPS(atomic_sub_return)
4366 #undef ATOMIC_FETCH_OPS
4367
4368 #define ATOMIC64_OP(op) \
4369-static inline void arch_##op(long i, atomic64_t *v) \
4370+static __always_inline void arch_##op(long i, atomic64_t *v) \
4371 { \
4372 __lse_ll_sc_body(op, i, v); \
4373 }
4374@@ -71,7 +71,7 @@ ATOMIC64_OP(atomic64_sub)
4375 #undef ATOMIC64_OP
4376
4377 #define ATOMIC64_FETCH_OP(name, op) \
4378-static inline long arch_##op##name(long i, atomic64_t *v) \
4379+static __always_inline long arch_##op##name(long i, atomic64_t *v) \
4380 { \
4381 return __lse_ll_sc_body(op##name, i, v); \
4382 }
4383@@ -94,7 +94,7 @@ ATOMIC64_FETCH_OPS(atomic64_sub_return)
4384 #undef ATOMIC64_FETCH_OP
4385 #undef ATOMIC64_FETCH_OPS
4386
4387-static inline long arch_atomic64_dec_if_positive(atomic64_t *v)
4388+static __always_inline long arch_atomic64_dec_if_positive(atomic64_t *v)
4389 {
4390 return __lse_ll_sc_body(atomic64_dec_if_positive, v);
4391 }
4392diff --git a/arch/arm64/include/asm/cpufeature.h b/arch/arm64/include/asm/cpufeature.h
4393index 10d3048..ccae05d 100644
4394--- a/arch/arm64/include/asm/cpufeature.h
4395+++ b/arch/arm64/include/asm/cpufeature.h
4396@@ -262,6 +262,8 @@ extern struct arm64_ftr_reg arm64_ftr_reg_ctrel0;
4397 /*
4398 * CPU feature detected at boot time based on feature of one or more CPUs.
4399 * All possible conflicts for a late CPU are ignored.
4400+ * NOTE: this means that a late CPU with the feature will *not* cause the
4401+ * capability to be advertised by cpus_have_*cap()!
4402 */
4403 #define ARM64_CPUCAP_WEAK_LOCAL_CPU_FEATURE \
4404 (ARM64_CPUCAP_SCOPE_LOCAL_CPU | \
4405diff --git a/arch/arm64/include/asm/kvm_asm.h b/arch/arm64/include/asm/kvm_asm.h
4406index 64d79b2..c54e759 100644
4407--- a/arch/arm64/include/asm/kvm_asm.h
4408+++ b/arch/arm64/include/asm/kvm_asm.h
4409@@ -60,7 +60,7 @@ extern char __kvm_hyp_vector[];
4410 extern void __kvm_flush_vm_context(void);
4411 extern void __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa);
4412 extern void __kvm_tlb_flush_vmid(struct kvm *kvm);
4413-extern void __kvm_tlb_flush_local_vmid(struct kvm_vcpu *vcpu);
4414+extern void __kvm_flush_cpu_context(struct kvm_vcpu *vcpu);
4415
4416 extern void __kvm_timer_set_cntvoff(u32 cntvoff_low, u32 cntvoff_high);
4417
4418diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h
4419index d719c6b..dfa6dc4 100644
4420--- a/arch/arm64/include/asm/kvm_host.h
4421+++ b/arch/arm64/include/asm/kvm_host.h
4422@@ -182,6 +182,7 @@ enum vcpu_sysreg {
4423 #define c2_TTBR1 (TTBR1_EL1 * 2) /* Translation Table Base Register 1 */
4424 #define c2_TTBR1_high (c2_TTBR1 + 1) /* TTBR1 top 32 bits */
4425 #define c2_TTBCR (TCR_EL1 * 2) /* Translation Table Base Control R. */
4426+#define c2_TTBCR2 (c2_TTBCR + 1) /* Translation Table Base Control R. 2 */
4427 #define c3_DACR (DACR32_EL2 * 2)/* Domain Access Control Register */
4428 #define c5_DFSR (ESR_EL1 * 2) /* Data Fault Status Register */
4429 #define c5_IFSR (IFSR32_EL2 * 2)/* Instruction Fault Status Register */
4430@@ -209,6 +210,7 @@ enum vcpu_sysreg {
4431 #define cp14_DBGWCR0 (DBGWCR0_EL1 * 2)
4432 #define cp14_DBGWVR0 (DBGWVR0_EL1 * 2)
4433 #define cp14_DBGDCCINT (MDCCINT_EL1 * 2)
4434+#define cp14_DBGVCR (DBGVCR32_EL2 * 2)
4435
4436 #define NR_COPRO_REGS (NR_SYS_REGS * 2)
4437
4438diff --git a/arch/arm64/include/asm/linkage.h b/arch/arm64/include/asm/linkage.h
4439index 1b26629..ebee311 100644
4440--- a/arch/arm64/include/asm/linkage.h
4441+++ b/arch/arm64/include/asm/linkage.h
4442@@ -4,4 +4,20 @@
4443 #define __ALIGN .align 2
4444 #define __ALIGN_STR ".align 2"
4445
4446+/*
4447+ * Annotate a function as position independent, i.e., safe to be called before
4448+ * the kernel virtual mapping is activated.
4449+ */
4450+#define SYM_FUNC_START_PI(x) \
4451+ SYM_FUNC_START_ALIAS(__pi_##x); \
4452+ SYM_FUNC_START(x)
4453+
4454+#define SYM_FUNC_START_WEAK_PI(x) \
4455+ SYM_FUNC_START_ALIAS(__pi_##x); \
4456+ SYM_FUNC_START_WEAK(x)
4457+
4458+#define SYM_FUNC_END_PI(x) \
4459+ SYM_FUNC_END(x); \
4460+ SYM_FUNC_END_ALIAS(__pi_##x)
4461+
4462 #endif
4463diff --git a/arch/arm64/include/asm/memory.h b/arch/arm64/include/asm/memory.h
4464index 08df42e..67b6b90 100644
4465--- a/arch/arm64/include/asm/memory.h
4466+++ b/arch/arm64/include/asm/memory.h
4467@@ -178,7 +178,6 @@ extern u64 vabits_actual;
4468 #include <linux/bitops.h>
4469 #include <linux/mmdebug.h>
4470
4471-extern s64 physvirt_offset;
4472 extern s64 memstart_addr;
4473 /* PHYS_OFFSET - the physical address of the start of memory. */
4474 #define PHYS_OFFSET ({ VM_BUG_ON(memstart_addr & 1); memstart_addr; })
4475@@ -248,13 +247,13 @@ static inline const void *__tag_set(const void *addr, u8 tag)
4476
4477
4478 /*
4479- * The linear kernel range starts at the bottom of the virtual address
4480- * space. Testing the top bit for the start of the region is a
4481- * sufficient check and avoids having to worry about the tag.
4482+ * Check whether an arbitrary address is within the linear map, which
4483+ * lives in the [PAGE_OFFSET, PAGE_END) interval at the bottom of the
4484+ * kernel's TTBR1 address range.
4485 */
4486-#define __is_lm_address(addr) (!(((u64)addr) & BIT(vabits_actual - 1)))
4487+#define __is_lm_address(addr) (((u64)(addr) ^ PAGE_OFFSET) < (PAGE_END - PAGE_OFFSET))
4488
4489-#define __lm_to_phys(addr) (((addr) + physvirt_offset))
4490+#define __lm_to_phys(addr) (((addr) & ~PAGE_OFFSET) + PHYS_OFFSET)
4491 #define __kimg_to_phys(addr) ((addr) - kimage_voffset)
4492
4493 #define __virt_to_phys_nodebug(x) ({ \
4494@@ -272,7 +271,7 @@ extern phys_addr_t __phys_addr_symbol(unsigned long x);
4495 #define __phys_addr_symbol(x) __pa_symbol_nodebug(x)
4496 #endif /* CONFIG_DEBUG_VIRTUAL */
4497
4498-#define __phys_to_virt(x) ((unsigned long)((x) - physvirt_offset))
4499+#define __phys_to_virt(x) ((unsigned long)((x) - PHYS_OFFSET) | PAGE_OFFSET)
4500 #define __phys_to_kimg(x) ((unsigned long)((x) + kimage_voffset))
4501
4502 /*
4503@@ -316,6 +315,11 @@ static inline void *phys_to_virt(phys_addr_t x)
4504 #define ARCH_PFN_OFFSET ((unsigned long)PHYS_PFN_OFFSET)
4505
4506 #if !defined(CONFIG_SPARSEMEM_VMEMMAP) || defined(CONFIG_DEBUG_VIRTUAL)
4507+#define page_to_virt(x) ({ \
4508+ __typeof__(x) __page = x; \
4509+ void *__addr = __va(page_to_phys(__page)); \
4510+ (void *)__tag_set((const void *)__addr, page_kasan_tag(__page));\
4511+})
4512 #define virt_to_page(x) pfn_to_page(virt_to_pfn(x))
4513 #else
4514 #define page_to_virt(x) ({ \
4515@@ -333,7 +337,7 @@ static inline void *phys_to_virt(phys_addr_t x)
4516 #endif /* !CONFIG_SPARSEMEM_VMEMMAP || CONFIG_DEBUG_VIRTUAL */
4517
4518 #define virt_addr_valid(addr) ({ \
4519- __typeof__(addr) __addr = addr; \
4520+ __typeof__(addr) __addr = __tag_reset(addr); \
4521 __is_lm_address(__addr) && pfn_valid(virt_to_pfn(__addr)); \
4522 })
4523
4524diff --git a/arch/arm64/include/asm/mmu_context.h b/arch/arm64/include/asm/mmu_context.h
4525index 3827ff4..3a5d9f1 100644
4526--- a/arch/arm64/include/asm/mmu_context.h
4527+++ b/arch/arm64/include/asm/mmu_context.h
4528@@ -63,10 +63,7 @@ extern u64 idmap_ptrs_per_pgd;
4529
4530 static inline bool __cpu_uses_extended_idmap(void)
4531 {
4532- if (IS_ENABLED(CONFIG_ARM64_VA_BITS_52))
4533- return false;
4534-
4535- return unlikely(idmap_t0sz != TCR_T0SZ(VA_BITS));
4536+ return unlikely(idmap_t0sz != TCR_T0SZ(vabits_actual));
4537 }
4538
4539 /*
4540diff --git a/arch/arm64/include/asm/numa.h b/arch/arm64/include/asm/numa.h
4541index 626ad01..dd87039 100644
4542--- a/arch/arm64/include/asm/numa.h
4543+++ b/arch/arm64/include/asm/numa.h
4544@@ -25,6 +25,9 @@ const struct cpumask *cpumask_of_node(int node);
4545 /* Returns a pointer to the cpumask of CPUs on Node 'node'. */
4546 static inline const struct cpumask *cpumask_of_node(int node)
4547 {
4548+ if (node == NUMA_NO_NODE)
4549+ return cpu_all_mask;
4550+
4551 return node_to_cpumask_map[node];
4552 }
4553 #endif
4554diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
4555index 41dd4b1..8c420f9 100644
4556--- a/arch/arm64/include/asm/pgtable.h
4557+++ b/arch/arm64/include/asm/pgtable.h
4558@@ -23,6 +23,8 @@
4559 #define VMALLOC_START (MODULES_END)
4560 #define VMALLOC_END (- PUD_SIZE - VMEMMAP_SIZE - SZ_64K)
4561
4562+#define vmemmap ((struct page *)VMEMMAP_START - (memstart_addr >> PAGE_SHIFT))
4563+
4564 #define FIRST_USER_ADDRESS 0UL
4565
4566 #ifndef __ASSEMBLY__
4567@@ -33,8 +35,6 @@
4568 #include <linux/mm_types.h>
4569 #include <linux/sched.h>
4570
4571-extern struct page *vmemmap;
4572-
4573 extern void __pte_error(const char *file, int line, unsigned long val);
4574 extern void __pmd_error(const char *file, int line, unsigned long val);
4575 extern void __pud_error(const char *file, int line, unsigned long val);
4576@@ -98,8 +98,6 @@ extern unsigned long empty_zero_page[PAGE_SIZE / sizeof(unsigned long)];
4577 #define pte_valid(pte) (!!(pte_val(pte) & PTE_VALID))
4578 #define pte_valid_not_user(pte) \
4579 ((pte_val(pte) & (PTE_VALID | PTE_USER)) == PTE_VALID)
4580-#define pte_valid_young(pte) \
4581- ((pte_val(pte) & (PTE_VALID | PTE_AF)) == (PTE_VALID | PTE_AF))
4582 #define pte_valid_user(pte) \
4583 ((pte_val(pte) & (PTE_VALID | PTE_USER)) == (PTE_VALID | PTE_USER))
4584
4585@@ -107,9 +105,12 @@ extern unsigned long empty_zero_page[PAGE_SIZE / sizeof(unsigned long)];
4586 * Could the pte be present in the TLB? We must check mm_tlb_flush_pending
4587 * so that we don't erroneously return false for pages that have been
4588 * remapped as PROT_NONE but are yet to be flushed from the TLB.
4589+ * Note that we can't make any assumptions based on the state of the access
4590+ * flag, since ptep_clear_flush_young() elides a DSB when invalidating the
4591+ * TLB.
4592 */
4593 #define pte_accessible(mm, pte) \
4594- (mm_tlb_flush_pending(mm) ? pte_present(pte) : pte_valid_young(pte))
4595+ (mm_tlb_flush_pending(mm) ? pte_present(pte) : pte_valid(pte))
4596
4597 /*
4598 * p??_access_permitted() is true for valid user mappings (subject to the
4599@@ -135,13 +136,6 @@ static inline pte_t set_pte_bit(pte_t pte, pgprot_t prot)
4600 return pte;
4601 }
4602
4603-static inline pte_t pte_wrprotect(pte_t pte)
4604-{
4605- pte = clear_pte_bit(pte, __pgprot(PTE_WRITE));
4606- pte = set_pte_bit(pte, __pgprot(PTE_RDONLY));
4607- return pte;
4608-}
4609-
4610 static inline pte_t pte_mkwrite(pte_t pte)
4611 {
4612 pte = set_pte_bit(pte, __pgprot(PTE_WRITE));
4613@@ -167,6 +161,20 @@ static inline pte_t pte_mkdirty(pte_t pte)
4614 return pte;
4615 }
4616
4617+static inline pte_t pte_wrprotect(pte_t pte)
4618+{
4619+ /*
4620+ * If hardware-dirty (PTE_WRITE/DBM bit set and PTE_RDONLY
4621+ * clear), set the PTE_DIRTY bit.
4622+ */
4623+ if (pte_hw_dirty(pte))
4624+ pte = pte_mkdirty(pte);
4625+
4626+ pte = clear_pte_bit(pte, __pgprot(PTE_WRITE));
4627+ pte = set_pte_bit(pte, __pgprot(PTE_RDONLY));
4628+ return pte;
4629+}
4630+
4631 static inline pte_t pte_mkold(pte_t pte)
4632 {
4633 return clear_pte_bit(pte, __pgprot(PTE_AF));
4634@@ -782,12 +790,6 @@ static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addres
4635 pte = READ_ONCE(*ptep);
4636 do {
4637 old_pte = pte;
4638- /*
4639- * If hardware-dirty (PTE_WRITE/DBM bit set and PTE_RDONLY
4640- * clear), set the PTE_DIRTY bit.
4641- */
4642- if (pte_hw_dirty(pte))
4643- pte = pte_mkdirty(pte);
4644 pte = pte_wrprotect(pte);
4645 pte_val(pte) = cmpxchg_relaxed(&pte_val(*ptep),
4646 pte_val(old_pte), pte_val(pte));
4647diff --git a/arch/arm64/kernel/cpu_errata.c b/arch/arm64/kernel/cpu_errata.c
4648index d2e738c..1e16c4e 100644
4649--- a/arch/arm64/kernel/cpu_errata.c
4650+++ b/arch/arm64/kernel/cpu_errata.c
4651@@ -492,6 +492,12 @@ out_printmsg:
4652 return required;
4653 }
4654
4655+static void cpu_enable_ssbd_mitigation(const struct arm64_cpu_capabilities *cap)
4656+{
4657+ if (ssbd_state != ARM64_SSBD_FORCE_DISABLE)
4658+ cap->matches(cap, SCOPE_LOCAL_CPU);
4659+}
4660+
4661 /* known invulnerable cores */
4662 static const struct midr_range arm64_ssb_cpus[] = {
4663 MIDR_ALL_VERSIONS(MIDR_CORTEX_A35),
4664@@ -635,6 +641,12 @@ check_branch_predictor(const struct arm64_cpu_capabilities *entry, int scope)
4665 return (need_wa > 0);
4666 }
4667
4668+static void
4669+cpu_enable_branch_predictor_hardening(const struct arm64_cpu_capabilities *cap)
4670+{
4671+ cap->matches(cap, SCOPE_LOCAL_CPU);
4672+}
4673+
4674 static const __maybe_unused struct midr_range tx2_family_cpus[] = {
4675 MIDR_ALL_VERSIONS(MIDR_BRCM_VULCAN),
4676 MIDR_ALL_VERSIONS(MIDR_CAVIUM_THUNDERX2),
4677@@ -894,9 +906,11 @@ const struct arm64_cpu_capabilities arm64_errata[] = {
4678 },
4679 #endif
4680 {
4681+ .desc = "Branch predictor hardening",
4682 .capability = ARM64_HARDEN_BRANCH_PREDICTOR,
4683 .type = ARM64_CPUCAP_LOCAL_CPU_ERRATUM,
4684 .matches = check_branch_predictor,
4685+ .cpu_enable = cpu_enable_branch_predictor_hardening,
4686 },
4687 #ifdef CONFIG_HARDEN_EL2_VECTORS
4688 {
4689@@ -910,6 +924,7 @@ const struct arm64_cpu_capabilities arm64_errata[] = {
4690 .capability = ARM64_SSBD,
4691 .type = ARM64_CPUCAP_LOCAL_CPU_ERRATUM,
4692 .matches = has_ssbd_mitigation,
4693+ .cpu_enable = cpu_enable_ssbd_mitigation,
4694 .midr_range_list = arm64_ssb_cpus,
4695 },
4696 #ifdef CONFIG_ARM64_ERRATUM_1418040
4697diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c
4698index f2ec845..79caab1 100644
4699--- a/arch/arm64/kernel/cpufeature.c
4700+++ b/arch/arm64/kernel/cpufeature.c
4701@@ -1092,7 +1092,7 @@ static bool cpu_has_broken_dbm(void)
4702 /* List of CPUs which have broken DBM support. */
4703 static const struct midr_range cpus[] = {
4704 #ifdef CONFIG_ARM64_ERRATUM_1024718
4705- MIDR_RANGE(MIDR_CORTEX_A55, 0, 0, 1, 0), // A55 r0p0 -r1p0
4706+ MIDR_ALL_VERSIONS(MIDR_CORTEX_A55),
4707 #endif
4708 {},
4709 };
4710diff --git a/arch/arm64/kernel/head.S b/arch/arm64/kernel/head.S
4711index bdb5ec3..a2e0b37 100644
4712--- a/arch/arm64/kernel/head.S
4713+++ b/arch/arm64/kernel/head.S
4714@@ -337,7 +337,7 @@ __create_page_tables:
4715 */
4716 adrp x5, __idmap_text_end
4717 clz x5, x5
4718- cmp x5, TCR_T0SZ(VA_BITS) // default T0SZ small enough?
4719+ cmp x5, TCR_T0SZ(VA_BITS_MIN) // default T0SZ small enough?
4720 b.ge 1f // .. then skip VA range extension
4721
4722 adr_l x6, idmap_t0sz
4723@@ -970,6 +970,7 @@ __primary_switch:
4724
4725 tlbi vmalle1 // Remove any stale TLB entries
4726 dsb nsh
4727+ isb
4728
4729 msr sctlr_el1, x19 // re-enable the MMU
4730 isb
4731diff --git a/arch/arm64/kernel/machine_kexec_file.c b/arch/arm64/kernel/machine_kexec_file.c
4732index 7b08bf9..d2a62dd 100644
4733--- a/arch/arm64/kernel/machine_kexec_file.c
4734+++ b/arch/arm64/kernel/machine_kexec_file.c
4735@@ -150,8 +150,10 @@ static int create_dtb(struct kimage *image,
4736
4737 /* duplicate a device tree blob */
4738 ret = fdt_open_into(initial_boot_params, buf, buf_size);
4739- if (ret)
4740+ if (ret) {
4741+ vfree(buf);
4742 return -EINVAL;
4743+ }
4744
4745 ret = setup_dtb(image, initrd_load_addr, initrd_len,
4746 cmdline, buf);
4747diff --git a/arch/arm64/kernel/module.lds b/arch/arm64/kernel/module.lds
4748index 22e36a2..09a0eef 100644
4749--- a/arch/arm64/kernel/module.lds
4750+++ b/arch/arm64/kernel/module.lds
4751@@ -1,5 +1,5 @@
4752 SECTIONS {
4753- .plt (NOLOAD) : { BYTE(0) }
4754- .init.plt (NOLOAD) : { BYTE(0) }
4755- .text.ftrace_trampoline (NOLOAD) : { BYTE(0) }
4756+ .plt 0 (NOLOAD) : { BYTE(0) }
4757+ .init.plt 0 (NOLOAD) : { BYTE(0) }
4758+ .text.ftrace_trampoline 0 (NOLOAD) : { BYTE(0) }
4759 }
4760diff --git a/arch/arm64/kernel/probes/uprobes.c b/arch/arm64/kernel/probes/uprobes.c
4761index a412d8e..2c24763 100644
4762--- a/arch/arm64/kernel/probes/uprobes.c
4763+++ b/arch/arm64/kernel/probes/uprobes.c
4764@@ -38,7 +38,7 @@ int arch_uprobe_analyze_insn(struct arch_uprobe *auprobe, struct mm_struct *mm,
4765
4766 /* TODO: Currently we do not support AARCH32 instruction probing */
4767 if (mm->context.flags & MMCF_AARCH32)
4768- return -ENOTSUPP;
4769+ return -EOPNOTSUPP;
4770 else if (!IS_ALIGNED(addr, AARCH64_INSN_SIZE))
4771 return -EINVAL;
4772
4773diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c
4774index 10190c4..7d7cfa1 100644
4775--- a/arch/arm64/kernel/process.c
4776+++ b/arch/arm64/kernel/process.c
4777@@ -511,14 +511,13 @@ static void erratum_1418040_thread_switch(struct task_struct *prev,
4778 bool prev32, next32;
4779 u64 val;
4780
4781- if (!(IS_ENABLED(CONFIG_ARM64_ERRATUM_1418040) &&
4782- cpus_have_const_cap(ARM64_WORKAROUND_1418040)))
4783+ if (!IS_ENABLED(CONFIG_ARM64_ERRATUM_1418040))
4784 return;
4785
4786 prev32 = is_compat_thread(task_thread_info(prev));
4787 next32 = is_compat_thread(task_thread_info(next));
4788
4789- if (prev32 == next32)
4790+ if (prev32 == next32 || !this_cpu_has_cap(ARM64_WORKAROUND_1418040))
4791 return;
4792
4793 val = read_sysreg(cntkctl_el1);
4794diff --git a/arch/arm64/kernel/psci.c b/arch/arm64/kernel/psci.c
4795index 43ae4e0..62d2bda 100644
4796--- a/arch/arm64/kernel/psci.c
4797+++ b/arch/arm64/kernel/psci.c
4798@@ -66,7 +66,6 @@ static int cpu_psci_cpu_disable(unsigned int cpu)
4799
4800 static void cpu_psci_cpu_die(unsigned int cpu)
4801 {
4802- int ret;
4803 /*
4804 * There are no known implementations of PSCI actually using the
4805 * power state field, pass a sensible default for now.
4806@@ -74,9 +73,7 @@ static void cpu_psci_cpu_die(unsigned int cpu)
4807 u32 state = PSCI_POWER_STATE_TYPE_POWER_DOWN <<
4808 PSCI_0_2_POWER_STATE_TYPE_SHIFT;
4809
4810- ret = psci_ops.cpu_off(state);
4811-
4812- pr_crit("unable to power off CPU%u (%d)\n", cpu, ret);
4813+ psci_ops.cpu_off(state);
4814 }
4815
4816 static int cpu_psci_cpu_kill(unsigned int cpu)
4817diff --git a/arch/arm64/kernel/ptrace.c b/arch/arm64/kernel/ptrace.c
4818index 30b877f..0cfd685 100644
4819--- a/arch/arm64/kernel/ptrace.c
4820+++ b/arch/arm64/kernel/ptrace.c
4821@@ -1844,7 +1844,7 @@ int syscall_trace_enter(struct pt_regs *regs)
4822
4823 if (flags & (_TIF_SYSCALL_EMU | _TIF_SYSCALL_TRACE)) {
4824 tracehook_report_syscall(regs, PTRACE_SYSCALL_ENTER);
4825- if (!in_syscall(regs) || (flags & _TIF_SYSCALL_EMU))
4826+ if (flags & _TIF_SYSCALL_EMU)
4827 return -1;
4828 }
4829
4830diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c
4831index 102dc3e..987220a 100644
4832--- a/arch/arm64/kernel/smp.c
4833+++ b/arch/arm64/kernel/smp.c
4834@@ -215,6 +215,7 @@ asmlinkage notrace void secondary_start_kernel(void)
4835 if (system_uses_irq_prio_masking())
4836 init_gic_priority_masking();
4837
4838+ rcu_cpu_starting(cpu);
4839 preempt_disable();
4840 trace_hardirqs_off();
4841
4842@@ -387,6 +388,7 @@ void cpu_die_early(void)
4843
4844 /* Mark this CPU absent */
4845 set_cpu_present(cpu, 0);
4846+ rcu_report_dead(cpu);
4847
4848 #ifdef CONFIG_HOTPLUG_CPU
4849 update_cpu_boot_status(CPU_KILL_ME);
4850diff --git a/arch/arm64/kernel/syscall.c b/arch/arm64/kernel/syscall.c
4851index 1457a0b..f2d2dbb 100644
4852--- a/arch/arm64/kernel/syscall.c
4853+++ b/arch/arm64/kernel/syscall.c
4854@@ -102,8 +102,8 @@ static void el0_svc_common(struct pt_regs *regs, int scno, int sc_nr,
4855 regs->syscallno = scno;
4856
4857 cortex_a76_erratum_1463225_svc_handler();
4858+ user_exit_irqoff();
4859 local_daif_restore(DAIF_PROCCTX);
4860- user_exit();
4861
4862 if (has_syscall_work(flags)) {
4863 /* set default errno for user-issued syscall(-1) */
4864diff --git a/arch/arm64/kernel/topology.c b/arch/arm64/kernel/topology.c
4865index fa9528d..113903d 100644
4866--- a/arch/arm64/kernel/topology.c
4867+++ b/arch/arm64/kernel/topology.c
4868@@ -35,21 +35,23 @@ void store_cpu_topology(unsigned int cpuid)
4869 if (mpidr & MPIDR_UP_BITMASK)
4870 return;
4871
4872- /* Create cpu topology mapping based on MPIDR. */
4873- if (mpidr & MPIDR_MT_BITMASK) {
4874- /* Multiprocessor system : Multi-threads per core */
4875- cpuid_topo->thread_id = MPIDR_AFFINITY_LEVEL(mpidr, 0);
4876- cpuid_topo->core_id = MPIDR_AFFINITY_LEVEL(mpidr, 1);
4877- cpuid_topo->package_id = MPIDR_AFFINITY_LEVEL(mpidr, 2) |
4878- MPIDR_AFFINITY_LEVEL(mpidr, 3) << 8;
4879- } else {
4880- /* Multiprocessor system : Single-thread per core */
4881- cpuid_topo->thread_id = -1;
4882- cpuid_topo->core_id = MPIDR_AFFINITY_LEVEL(mpidr, 0);
4883- cpuid_topo->package_id = MPIDR_AFFINITY_LEVEL(mpidr, 1) |
4884- MPIDR_AFFINITY_LEVEL(mpidr, 2) << 8 |
4885- MPIDR_AFFINITY_LEVEL(mpidr, 3) << 16;
4886- }
4887+ /*
4888+ * This would be the place to create cpu topology based on MPIDR.
4889+ *
4890+ * However, it cannot be trusted to depict the actual topology; some
4891+ * pieces of the architecture enforce an artificial cap on Aff0 values
4892+ * (e.g. GICv3's ICC_SGI1R_EL1 limits it to 15), leading to an
4893+ * artificial cycling of Aff1, Aff2 and Aff3 values. IOW, these end up
4894+ * having absolutely no relationship to the actual underlying system
4895+ * topology, and cannot be reasonably used as core / package ID.
4896+ *
4897+ * If the MT bit is set, Aff0 *could* be used to define a thread ID, but
4898+ * we still wouldn't be able to obtain a sane core ID. This means we
4899+ * need to entirely ignore MPIDR for any topology deduction.
4900+ */
4901+ cpuid_topo->thread_id = -1;
4902+ cpuid_topo->core_id = cpuid;
4903+ cpuid_topo->package_id = cpu_to_node(cpuid);
4904
4905 pr_debug("CPU%u: cluster %d core %d thread %d mpidr %#016llx\n",
4906 cpuid, cpuid_topo->package_id, cpuid_topo->core_id,
4907diff --git a/arch/arm64/kvm/hyp/tlb.c b/arch/arm64/kvm/hyp/tlb.c
4908index eb0efc5..7b7213f 100644
4909--- a/arch/arm64/kvm/hyp/tlb.c
4910+++ b/arch/arm64/kvm/hyp/tlb.c
4911@@ -182,7 +182,7 @@ void __hyp_text __kvm_tlb_flush_vmid(struct kvm *kvm)
4912 __tlb_switch_to_host(kvm, &cxt);
4913 }
4914
4915-void __hyp_text __kvm_tlb_flush_local_vmid(struct kvm_vcpu *vcpu)
4916+void __hyp_text __kvm_flush_cpu_context(struct kvm_vcpu *vcpu)
4917 {
4918 struct kvm *kvm = kern_hyp_va(kern_hyp_va(vcpu)->kvm);
4919 struct tlb_inv_context cxt;
4920@@ -191,6 +191,7 @@ void __hyp_text __kvm_tlb_flush_local_vmid(struct kvm_vcpu *vcpu)
4921 __tlb_switch_to_guest(kvm, &cxt);
4922
4923 __tlbi(vmalle1);
4924+ asm volatile("ic iallu");
4925 dsb(nsh);
4926 isb();
4927
4928diff --git a/arch/arm64/kvm/reset.c b/arch/arm64/kvm/reset.c
4929index 784d485..a3105ae 100644
4930--- a/arch/arm64/kvm/reset.c
4931+++ b/arch/arm64/kvm/reset.c
4932@@ -378,10 +378,10 @@ void kvm_set_ipa_limit(void)
4933 pr_info("kvm: Limiting the IPA size due to kernel %s Address limit\n",
4934 (va_max < pa_max) ? "Virtual" : "Physical");
4935
4936- WARN(ipa_max < KVM_PHYS_SHIFT,
4937- "KVM IPA limit (%d bit) is smaller than default size\n", ipa_max);
4938 kvm_ipa_limit = ipa_max;
4939- kvm_info("IPA Size Limit: %dbits\n", kvm_ipa_limit);
4940+ kvm_info("IPA Size Limit: %d bits%s\n", kvm_ipa_limit,
4941+ ((kvm_ipa_limit < KVM_PHYS_SHIFT) ?
4942+ " (Reduced IPA size, limited VM/VMM compatibility)" : ""));
4943 }
4944
4945 /*
4946@@ -408,6 +408,11 @@ int kvm_arm_setup_stage2(struct kvm *kvm, unsigned long type)
4947 return -EINVAL;
4948 } else {
4949 phys_shift = KVM_PHYS_SHIFT;
4950+ if (phys_shift > kvm_ipa_limit) {
4951+ pr_warn_once("%s using unsupported default IPA limit, upgrade your VMM\n",
4952+ current->comm);
4953+ return -EINVAL;
4954+ }
4955 }
4956
4957 parange = read_sanitised_ftr_reg(SYS_ID_AA64MMFR0_EL1) & 7;
4958diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c
4959index d43f44b..98a177d 100644
4960--- a/arch/arm64/kvm/sys_regs.c
4961+++ b/arch/arm64/kvm/sys_regs.c
4962@@ -625,6 +625,10 @@ static void reset_pmcr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *r)
4963 {
4964 u64 pmcr, val;
4965
4966+ /* No PMU available, PMCR_EL0 may UNDEF... */
4967+ if (!kvm_arm_support_pmu_v3())
4968+ return;
4969+
4970 pmcr = read_sysreg(pmcr_el0);
4971 /*
4972 * Writable bits of PMCR_EL0 (ARMV8_PMU_PMCR_MASK) are reset to UNKNOWN
4973@@ -1132,16 +1136,6 @@ static unsigned int sve_visibility(const struct kvm_vcpu *vcpu,
4974 return REG_HIDDEN_USER | REG_HIDDEN_GUEST;
4975 }
4976
4977-/* Visibility overrides for SVE-specific ID registers */
4978-static unsigned int sve_id_visibility(const struct kvm_vcpu *vcpu,
4979- const struct sys_reg_desc *rd)
4980-{
4981- if (vcpu_has_sve(vcpu))
4982- return 0;
4983-
4984- return REG_HIDDEN_USER;
4985-}
4986-
4987 /* Generate the emulated ID_AA64ZFR0_EL1 value exposed to the guest */
4988 static u64 guest_id_aa64zfr0_el1(const struct kvm_vcpu *vcpu)
4989 {
4990@@ -1168,9 +1162,6 @@ static int get_id_aa64zfr0_el1(struct kvm_vcpu *vcpu,
4991 {
4992 u64 val;
4993
4994- if (WARN_ON(!vcpu_has_sve(vcpu)))
4995- return -ENOENT;
4996-
4997 val = guest_id_aa64zfr0_el1(vcpu);
4998 return reg_to_user(uaddr, &val, reg->id);
4999 }
5000@@ -1183,9 +1174,6 @@ static int set_id_aa64zfr0_el1(struct kvm_vcpu *vcpu,
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to all changes: