[GIT PULL] LoongArch changes for v6.2

From: Huacai Chen
Date: Mon Dec 19 2022 - 07:07:25 EST


The following changes since commit 830b3c68c1fb1e9176028d02ef86f3cf76aa2476:

Linux 6.1 (2022-12-11 14:15:18 -0800)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson.git tags/loongarch-6.2

for you to fetch changes up to 5535f4f70cfc15ef55b6ea7c7e17337b17337cb6:

LoongArch: Update Loongson-3 default config file (2022-12-14 08:41:54 +0800)

----------------------------------------------------------------
LoongArch changes for v6.2

1, Switch to relative exception tables;
2, Add unaligned access support;
3, Add alternative runtime patching mechanism;
4, Add FDT booting support from efi system table;
5, Add suspend/hibernation (ACPI S3/S4) support;
6, Add basic STACKPROTECTOR support;
7, Add ftrace (function tracer) support;
8, Update the default config file.

----------------------------------------------------------------
Binbin Zhou (2):
LoongArch: Add FDT booting support from efi system table
LoongArch: Add processing ISA Node in DeviceTree

Huacai Chen (9):
Merge tags 'acpi-6.2-rc1' and 'irq-core-2022-12-10' into loongarch-next
LoongArch: Add unaligned access support
LoongArch: Add alternative runtime patching mechanism
LoongArch: Use alternative to optimize libraries
LoongArch: Add suspend (ACPI S3) support
LoongArch: Add hibernation (ACPI S4) support
LoongArch: Add basic STACKPROTECTOR support
LoongArch: module: Use got/plt section indices for relocations
LoongArch: Update Loongson-3 default config file

Qing Zhang (8):
LoongArch/ftrace: Add basic support
LoongArch/ftrace: Add recordmcount support
LoongArch/ftrace: Add dynamic function tracer support
LoongArch/ftrace: Add dynamic function graph tracer support
LoongArch/ftrace: Add HAVE_DYNAMIC_FTRACE_WITH_REGS support
LoongArch/ftrace: Add HAVE_DYNAMIC_FTRACE_WITH_ARGS support
LoongArch/ftrace: Add HAVE_FUNCTION_GRAPH_RET_ADDR_PTR support
LoongArch: modules/ftrace: Initialize PLT at load time

Youling Tang (6):
LoongArch: Consolidate __ex_table construction
LoongArch: Switch to relative exception tables
LoongArch: extable: Add `type` and `data` fields
LoongArch: extable: Add a dedicated uaccess handler
LoongArch: Remove the .fixup section usage
LoongArch: BPF: Add BPF exception tables

Documentation/PCI/msi-howto.rst | 10 +
Documentation/admin-guide/sysctl/kernel.rst | 8 +-
.../loongarch,cpu-interrupt-controller.yaml | 34 +
.../interrupt-controller/mediatek,cirq.txt | 33 -
.../interrupt-controller/mediatek,mtk-cirq.yaml | 68 ++
arch/arm64/kernel/acpi.c | 106 ++
arch/ia64/hp/common/aml_nfw.c | 4 +-
arch/loongarch/Kconfig | 20 +
arch/loongarch/Makefile | 8 +
arch/loongarch/configs/loongson3_defconfig | 56 +-
arch/loongarch/include/asm/acpi.h | 152 +--
arch/loongarch/include/asm/alternative-asm.h | 82 ++
arch/loongarch/include/asm/alternative.h | 111 ++
arch/loongarch/include/asm/asm-extable.h | 65 ++
arch/loongarch/include/asm/bootinfo.h | 1 +
arch/loongarch/include/asm/bugs.h | 15 +
arch/loongarch/include/asm/efi.h | 1 +
arch/loongarch/include/asm/extable.h | 47 +
arch/loongarch/include/asm/ftrace.h | 68 ++
arch/loongarch/include/asm/futex.h | 27 +-
arch/loongarch/include/asm/gpr-num.h | 22 +
arch/loongarch/include/asm/inst.h | 46 +
arch/loongarch/include/asm/irq.h | 2 +-
arch/loongarch/include/asm/loongson.h | 3 +
arch/loongarch/include/asm/module.h | 27 +-
arch/loongarch/include/asm/module.lds.h | 1 +
arch/loongarch/include/asm/setup.h | 1 +
arch/loongarch/include/asm/stackprotector.h | 38 +
arch/loongarch/include/asm/string.h | 5 +
arch/loongarch/include/asm/thread_info.h | 2 +-
arch/loongarch/include/asm/time.h | 1 +
arch/loongarch/include/asm/uaccess.h | 24 +-
arch/loongarch/include/asm/unwind.h | 3 +-
arch/loongarch/kernel/Makefile | 16 +-
arch/loongarch/kernel/acpi.c | 17 +-
arch/loongarch/kernel/alternative.c | 246 +++++
arch/loongarch/kernel/asm-offsets.c | 15 +
arch/loongarch/kernel/efi.c | 15 +-
arch/loongarch/kernel/env.c | 2 +
arch/loongarch/kernel/fpu.S | 5 +-
arch/loongarch/kernel/ftrace.c | 73 ++
arch/loongarch/kernel/ftrace_dyn.c | 273 +++++
arch/loongarch/kernel/inst.c | 127 +++
arch/loongarch/kernel/mcount.S | 96 ++
arch/loongarch/kernel/mcount_dyn.S | 149 +++
arch/loongarch/kernel/module-sections.c | 64 +-
arch/loongarch/kernel/module.c | 75 +-
arch/loongarch/kernel/numa.c | 17 +-
arch/loongarch/kernel/process.c | 6 +
arch/loongarch/kernel/reset.c | 5 +
arch/loongarch/kernel/setup.c | 149 ++-
arch/loongarch/kernel/smp.c | 35 +
arch/loongarch/kernel/switch.S | 5 +
arch/loongarch/kernel/time.c | 11 +-
arch/loongarch/kernel/traps.c | 27 +
arch/loongarch/kernel/unaligned.c | 499 +++++++++
arch/loongarch/kernel/unwind_guess.c | 4 +-
arch/loongarch/kernel/unwind_prologue.c | 50 +-
arch/loongarch/kernel/vmlinux.lds.S | 13 +-
arch/loongarch/lib/Makefile | 3 +-
arch/loongarch/lib/clear_user.S | 85 +-
arch/loongarch/lib/copy_user.S | 108 +-
arch/loongarch/lib/memcpy.S | 95 ++
arch/loongarch/lib/memmove.S | 121 +++
arch/loongarch/lib/memset.S | 91 ++
arch/loongarch/lib/unaligned.S | 84 ++
arch/loongarch/mm/extable.c | 59 +-
arch/loongarch/net/bpf_jit.c | 86 +-
arch/loongarch/net/bpf_jit.h | 2 +
arch/loongarch/pci/acpi.c | 7 +-
arch/loongarch/power/Makefile | 4 +
arch/loongarch/power/hibernate.c | 62 ++
arch/loongarch/power/hibernate_asm.S | 66 ++
arch/loongarch/power/platform.c | 57 +
arch/loongarch/power/suspend.c | 73 ++
arch/loongarch/power/suspend_asm.S | 89 ++
arch/powerpc/platforms/pseries/msi.c | 7 +-
arch/um/drivers/Kconfig | 1 -
arch/um/include/asm/pci.h | 2 +-
arch/x86/Kconfig | 1 -
arch/x86/include/asm/hyperv_timer.h | 9 +
arch/x86/include/asm/irq_remapping.h | 4 -
arch/x86/include/asm/irqdomain.h | 4 +-
arch/x86/include/asm/mshyperv.h | 2 -
arch/x86/include/asm/msi.h | 6 +
arch/x86/include/asm/pci.h | 5 +-
arch/x86/kernel/apic/msi.c | 211 ++--
arch/x86/kernel/apic/vector.c | 4 -
arch/x86/platform/olpc/olpc-xo15-sci.c | 3 +-
drivers/acpi/Kconfig | 10 +
drivers/acpi/Makefile | 1 +
drivers/acpi/ac.c | 8 +-
drivers/acpi/acpi_ffh.c | 55 +
drivers/acpi/acpi_pad.c | 7 +-
drivers/acpi/acpi_pcc.c | 47 +-
drivers/acpi/acpi_video.c | 8 +-
drivers/acpi/acpica/Makefile | 1 +
drivers/acpi/acpica/acglobal.h | 1 +
drivers/acpi/acpica/actables.h | 5 -
drivers/acpi/acpica/acutils.h | 13 +
drivers/acpi/acpica/dsmethod.c | 10 +-
drivers/acpi/acpica/evevent.c | 11 +
drivers/acpi/acpica/evregion.c | 9 +
drivers/acpi/acpica/exconfig.c | 4 +-
drivers/acpi/acpica/exfield.c | 8 +-
drivers/acpi/acpica/exserial.c | 6 +
drivers/acpi/acpica/hwsleep.c | 14 +
drivers/acpi/acpica/tbdata.c | 2 +-
drivers/acpi/acpica/tbfadt.c | 2 +-
drivers/acpi/acpica/tbprint.c | 77 +-
drivers/acpi/acpica/tbutils.c | 2 +-
drivers/acpi/acpica/tbxfroot.c | 32 +-
drivers/acpi/acpica/utcksum.c | 170 +++
drivers/acpi/acpica/utcopy.c | 7 -
drivers/acpi/acpica/utglobal.c | 4 +
drivers/acpi/acpica/utstring.c | 10 +-
drivers/acpi/apei/apei-base.c | 2 +-
drivers/acpi/apei/einj.c | 56 +-
drivers/acpi/apei/ghes.c | 62 +-
drivers/acpi/battery.c | 10 +-
drivers/acpi/bus.c | 3 +
drivers/acpi/button.c | 5 +-
drivers/acpi/cppc_acpi.c | 4 +-
drivers/acpi/ec.c | 15 +-
drivers/acpi/fan_attr.c | 16 +-
drivers/acpi/fan_core.c | 1 +
drivers/acpi/hed.c | 3 +-
drivers/acpi/irq.c | 5 +-
drivers/acpi/nfit/core.c | 3 +-
drivers/acpi/pci_irq.c | 6 +-
drivers/acpi/pfr_telemetry.c | 6 +-
drivers/acpi/pfr_update.c | 6 +-
drivers/acpi/power.c | 2 +-
drivers/acpi/processor_idle.c | 9 +-
drivers/acpi/processor_perflib.c | 100 +-
drivers/acpi/processor_throttling.c | 4 +-
drivers/acpi/sbs.c | 9 +-
drivers/acpi/sbshc.c | 7 +-
drivers/acpi/scan.c | 2 +-
drivers/acpi/sysfs.c | 5 +-
drivers/acpi/tables.c | 17 +-
drivers/acpi/thermal.c | 9 +-
drivers/acpi/tiny-power-button.c | 10 +-
drivers/acpi/video_detect.c | 110 +-
drivers/acpi/x86/utils.c | 24 +-
drivers/base/Makefile | 2 +-
drivers/base/platform-msi.c | 6 +-
drivers/bus/fsl-mc/Kconfig | 2 +-
drivers/bus/fsl-mc/dprc-driver.c | 1 -
drivers/bus/fsl-mc/fsl-mc-bus.c | 1 -
drivers/bus/fsl-mc/fsl-mc-msi.c | 25 +-
drivers/char/sonypi.c | 3 +-
drivers/char/tpm/tpm_crb.c | 4 +-
drivers/dma/Kconfig | 2 +-
drivers/dma/qcom/hidma.c | 8 +-
drivers/hv/vmbus_drv.c | 5 +-
drivers/hwmon/acpi_power_meter.c | 5 +-
drivers/hwmon/asus_atk0110.c | 6 +-
drivers/input/misc/atlas_btns.c | 4 +-
drivers/iommu/Kconfig | 2 +-
drivers/iommu/amd/amd_iommu_types.h | 1 -
drivers/iommu/amd/iommu.c | 44 +-
drivers/iommu/intel/iommu.h | 1 -
drivers/iommu/intel/irq_remapping.c | 52 +-
drivers/iommu/of_iommu.c | 1 -
drivers/irqchip/Kconfig | 9 +-
drivers/irqchip/irq-apple-aic.c | 6 +-
drivers/irqchip/irq-gic-pm.c | 2 +-
drivers/irqchip/irq-gic-v2m.c | 11 +-
drivers/irqchip/irq-gic-v3.c | 3 +-
drivers/irqchip/irq-gic.c | 7 +-
drivers/irqchip/irq-loongarch-cpu.c | 48 +-
drivers/irqchip/irq-loongson-eiointc.c | 63 +-
drivers/irqchip/irq-loongson-htvec.c | 176 +++-
drivers/irqchip/irq-loongson-liointc.c | 37 +-
drivers/irqchip/irq-loongson-pch-lpc.c | 25 +
drivers/irqchip/irq-loongson-pch-pic.c | 76 +-
drivers/irqchip/irq-ls-extirq.c | 2 +-
drivers/irqchip/irq-mips-gic.c | 2 +-
drivers/irqchip/irq-mtk-cirq.c | 95 +-
drivers/irqchip/irq-mvebu-icu.c | 4 +-
drivers/irqchip/irq-sifive-plic.c | 6 +-
drivers/irqchip/irq-sl28cpld.c | 3 +-
drivers/irqchip/irq-st.c | 7 +-
drivers/irqchip/irq-ti-sci-inta.c | 2 +-
drivers/irqchip/irq-wpcm450-aic.c | 1 +
drivers/mailbox/Kconfig | 2 +-
drivers/mailbox/pcc.c | 1 +
drivers/net/fjes/fjes_main.c | 4 +-
drivers/pci/Kconfig | 7 +-
drivers/pci/controller/Kconfig | 30 +-
drivers/pci/controller/dwc/Kconfig | 48 +-
drivers/pci/controller/mobiveil/Kconfig | 6 +-
drivers/pci/controller/pci-hyperv.c | 15 +-
drivers/pci/msi/Makefile | 3 +-
drivers/pci/msi/api.c | 458 ++++++++
drivers/pci/msi/irqdomain.c | 369 +++++--
drivers/pci/msi/msi.c | 1100 ++++++++------------
drivers/pci/msi/msi.h | 114 +-
drivers/pci/probe.c | 2 -
drivers/perf/Kconfig | 2 +-
drivers/platform/chrome/chromeos_privacy_screen.c | 3 +-
drivers/platform/chrome/wilco_ec/event.c | 4 +-
drivers/platform/surface/surfacepro3_button.c | 3 +-
drivers/platform/x86/asus-laptop.c | 3 +-
drivers/platform/x86/asus-wireless.c | 3 +-
drivers/platform/x86/classmate-laptop.c | 20 +-
drivers/platform/x86/dell/dell-rbtn.c | 6 +-
drivers/platform/x86/eeepc-laptop.c | 3 +-
drivers/platform/x86/fujitsu-laptop.c | 4 +-
drivers/platform/x86/fujitsu-tablet.c | 3 +-
drivers/platform/x86/intel/rst.c | 4 +-
drivers/platform/x86/lg-laptop.c | 4 +-
drivers/platform/x86/panasonic-laptop.c | 8 +-
drivers/platform/x86/sony-laptop.c | 9 +-
drivers/platform/x86/system76_acpi.c | 4 +-
drivers/platform/x86/topstar-laptop.c | 3 +-
drivers/platform/x86/toshiba_acpi.c | 4 +-
drivers/platform/x86/toshiba_bluetooth.c | 6 +-
drivers/platform/x86/toshiba_haps.c | 4 +-
drivers/platform/x86/wireless-hotkey.c | 3 +-
drivers/platform/x86/xo15-ebook.c | 3 +-
drivers/pnp/core.c | 4 +-
drivers/pnp/driver.c | 3 +-
drivers/ptp/ptp_vmw.c | 3 +-
drivers/soc/fsl/dpio/dpio-driver.c | 1 -
drivers/soc/ti/Kconfig | 2 +-
drivers/soc/ti/ti_sci_inta_msi.c | 12 +-
drivers/thermal/intel/intel_menlow.c | 8 +-
drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c | 1 -
drivers/video/backlight/apple_bl.c | 3 +-
drivers/watchdog/ni903x_wdt.c | 4 +-
drivers/xen/xen-acpi-pad.c | 3 +-
include/acpi/acconfig.h | 2 +
include/acpi/acpi_bus.h | 2 +-
include/acpi/acpixf.h | 2 +-
include/acpi/actbl1.h | 151 ++-
include/acpi/actbl2.h | 162 ++-
include/acpi/actypes.h | 10 +-
include/acpi/acuuid.h | 3 +-
include/acpi/processor.h | 10 +
include/asm-generic/msi.h | 4 +-
include/clocksource/hyperv_timer.h | 4 +-
include/linux/acpi.h | 13 +
include/linux/device.h | 8 +-
include/linux/gpio/driver.h | 2 +-
include/linux/irqdomain.h | 143 +--
include/linux/irqdomain_defs.h | 31 +
include/linux/irqreturn.h | 8 +-
include/linux/msi.h | 357 +++++--
include/linux/msi_api.h | 73 ++
include/linux/pci.h | 29 +-
kernel/irq/Kconfig | 7 +-
kernel/irq/chip.c | 8 +-
kernel/irq/internals.h | 2 +
kernel/irq/irqdesc.c | 15 +-
kernel/irq/manage.c | 4 +-
kernel/irq/msi.c | 914 +++++++++++++---
scripts/mod/modpost.c | 13 +
scripts/recordmcount.c | 39 +
scripts/sorttable.c | 2 +-
tools/power/acpi/tools/acpidump/Makefile | 1 +
tools/power/acpi/tools/acpidump/apdump.c | 4 +-
263 files changed, 8205 insertions(+), 2358 deletions(-)
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/loongarch,cpu-interrupt-controller.yaml
delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/mediatek,cirq.txt
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/mediatek,mtk-cirq.yaml
create mode 100644 arch/loongarch/include/asm/alternative-asm.h
create mode 100644 arch/loongarch/include/asm/alternative.h
create mode 100644 arch/loongarch/include/asm/asm-extable.h
create mode 100644 arch/loongarch/include/asm/bugs.h
create mode 100644 arch/loongarch/include/asm/extable.h
create mode 100644 arch/loongarch/include/asm/ftrace.h
create mode 100644 arch/loongarch/include/asm/gpr-num.h
create mode 100644 arch/loongarch/include/asm/stackprotector.h
create mode 100644 arch/loongarch/kernel/alternative.c
create mode 100644 arch/loongarch/kernel/ftrace.c
create mode 100644 arch/loongarch/kernel/ftrace_dyn.c
create mode 100644 arch/loongarch/kernel/mcount.S
create mode 100644 arch/loongarch/kernel/mcount_dyn.S
create mode 100644 arch/loongarch/kernel/unaligned.c
create mode 100644 arch/loongarch/lib/memcpy.S
create mode 100644 arch/loongarch/lib/memmove.S
create mode 100644 arch/loongarch/lib/memset.S
create mode 100644 arch/loongarch/lib/unaligned.S
create mode 100644 arch/loongarch/power/Makefile
create mode 100644 arch/loongarch/power/hibernate.c
create mode 100644 arch/loongarch/power/hibernate_asm.S
create mode 100644 arch/loongarch/power/platform.c
create mode 100644 arch/loongarch/power/suspend.c
create mode 100644 arch/loongarch/power/suspend_asm.S
create mode 100644 arch/x86/include/asm/hyperv_timer.h
create mode 100644 drivers/acpi/acpi_ffh.c
create mode 100644 drivers/acpi/acpica/utcksum.c
create mode 100644 drivers/pci/msi/api.c
create mode 100644 include/linux/irqdomain_defs.h
create mode 100644 include/linux/msi_api.h