mirror of
https://github.com/torvalds/linux.git
synced 2024-11-25 21:51:40 +00:00
0cc46f1a52
The ACPI custom_method debugfs interface is security-sensitive and concurrent access to it is broken [1]. Moreover, the recipe for preparing a customized version of a given control method has changed at one point due to ACPICA changes, which has not been reflected in its documentation, so whoever used it before has had to adapt and it had gone unnoticed for a long time. This interface was a bad idea to start with and its implementation is fragile at the design level. It's been always conceptually questionable, problematic from the security standpoint and implemented poorly. Patches fixing its most apparent functional issues (for example, [2]) don't actually address much of the above. Granted, at the time it was introduced, there was no alternative, but there is the AML debugger in the kernel now and there is the configfs interface allowing custom ACPI tables to be loaded. The former can be used for extensive AML debugging and the latter can be use for testing new AML. [3] Accordingly, drop custom_method along with its (outdated anyway) documentation. Link: https://lore.kernel.org/linux-acpi/20221227063335.61474-1-zh.nvgt@gmail.com/ # [1] Link: https://lore.kernel.org/linux-acpi/20231111132402.4142-1-shiqiang.deng213@gmail.com/ [2] Link: https://stackoverflow.com/questions/62849113/how-to-unload-an-overlay-loaded-using-acpi-config-sysfs # [3] Reported-by: Hang Zhang <zh.nvgt@gmail.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Reviewed-by: Zhang Rui <rui.zhang@intel.com> Reviewed-by: Kees Cook <keescook@chromium.org>
135 lines
3.8 KiB
Makefile
135 lines
3.8 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Makefile for the Linux ACPI interpreter
|
|
#
|
|
|
|
ccflags-$(CONFIG_ACPI_DEBUG) += -DACPI_DEBUG_OUTPUT
|
|
|
|
#
|
|
# ACPI Boot-Time Table Parsing
|
|
#
|
|
ifeq ($(CONFIG_ACPI_CUSTOM_DSDT),y)
|
|
tables.o: $(src)/../../include/$(CONFIG_ACPI_CUSTOM_DSDT_FILE) ;
|
|
|
|
endif
|
|
|
|
obj-$(CONFIG_ACPI) += tables.o
|
|
obj-$(CONFIG_X86) += blacklist.o
|
|
|
|
#
|
|
# ACPI Core Subsystem (Interpreter)
|
|
#
|
|
obj-$(CONFIG_ACPI) += acpi.o \
|
|
acpica/
|
|
|
|
# All the builtin files are in the "acpi." module_param namespace.
|
|
acpi-y += osi.o osl.o utils.o reboot.o
|
|
acpi-y += nvs.o
|
|
|
|
# Power management related files
|
|
acpi-y += wakeup.o
|
|
acpi-$(CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT) += sleep.o
|
|
acpi-y += device_sysfs.o device_pm.o
|
|
acpi-$(CONFIG_ACPI_SLEEP) += proc.o
|
|
|
|
|
|
#
|
|
# ACPI Bus and Device Drivers
|
|
#
|
|
acpi-y += bus.o glue.o
|
|
acpi-y += scan.o mipi-disco-img.o
|
|
acpi-y += resource.o
|
|
acpi-y += acpi_processor.o
|
|
acpi-y += processor_core.o
|
|
acpi-$(CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC) += processor_pdc.o
|
|
acpi-y += ec.o
|
|
acpi-$(CONFIG_ACPI_DOCK) += dock.o
|
|
acpi-$(CONFIG_PCI) += pci_root.o pci_link.o pci_irq.o
|
|
obj-$(CONFIG_ACPI_MCFG) += pci_mcfg.o
|
|
acpi-$(CONFIG_PCI) += acpi_lpss.o
|
|
acpi-y += acpi_apd.o
|
|
acpi-y += acpi_platform.o
|
|
acpi-y += acpi_pnp.o
|
|
acpi-y += power.o
|
|
acpi-y += event.o
|
|
acpi-y += evged.o
|
|
acpi-y += sysfs.o
|
|
acpi-y += property.o
|
|
acpi-$(CONFIG_X86) += acpi_cmos_rtc.o
|
|
acpi-$(CONFIG_X86) += x86/apple.o
|
|
acpi-$(CONFIG_X86) += x86/utils.o
|
|
acpi-$(CONFIG_X86) += x86/s2idle.o
|
|
acpi-$(CONFIG_DEBUG_FS) += debugfs.o
|
|
acpi-y += acpi_lpat.o
|
|
acpi-$(CONFIG_ACPI_FPDT) += acpi_fpdt.o
|
|
acpi-$(CONFIG_ACPI_LPIT) += acpi_lpit.o
|
|
acpi-$(CONFIG_ACPI_GENERIC_GSI) += irq.o
|
|
acpi-$(CONFIG_ACPI_WATCHDOG) += acpi_watchdog.o
|
|
acpi-$(CONFIG_ACPI_PRMT) += prmt.o
|
|
acpi-$(CONFIG_ACPI_PCC) += acpi_pcc.o
|
|
acpi-$(CONFIG_ACPI_FFH) += acpi_ffh.o
|
|
|
|
# Address translation
|
|
acpi-$(CONFIG_ACPI_ADXL) += acpi_adxl.o
|
|
|
|
# These are (potentially) separate modules
|
|
|
|
# IPMI may be used by other drivers, so it has to initialise before them
|
|
obj-$(CONFIG_ACPI_IPMI) += acpi_ipmi.o
|
|
|
|
obj-$(CONFIG_ACPI_AC) += ac.o
|
|
obj-$(CONFIG_ACPI_BUTTON) += button.o
|
|
obj-$(CONFIG_ACPI_TINY_POWER_BUTTON) += tiny-power-button.o
|
|
obj-$(CONFIG_ACPI_FAN) += fan.o
|
|
fan-objs := fan_core.o
|
|
fan-objs += fan_attr.o
|
|
|
|
obj-$(CONFIG_ACPI_VIDEO) += video.o
|
|
obj-$(CONFIG_ACPI_TAD) += acpi_tad.o
|
|
obj-$(CONFIG_ACPI_PCI_SLOT) += pci_slot.o
|
|
obj-$(CONFIG_ACPI_PROCESSOR) += processor.o
|
|
obj-$(CONFIG_ACPI) += container.o
|
|
obj-$(CONFIG_ACPI_THERMAL_LIB) += thermal_lib.o
|
|
obj-$(CONFIG_ACPI_THERMAL) += thermal.o
|
|
obj-$(CONFIG_ACPI_PLATFORM_PROFILE) += platform_profile.o
|
|
obj-$(CONFIG_ACPI_NFIT) += nfit/
|
|
obj-$(CONFIG_ACPI_NUMA) += numa/
|
|
obj-$(CONFIG_ACPI) += acpi_memhotplug.o
|
|
obj-$(CONFIG_ACPI_HOTPLUG_IOAPIC) += ioapic.o
|
|
obj-$(CONFIG_ACPI_BATTERY) += battery.o
|
|
obj-$(CONFIG_ACPI_SBS) += sbshc.o
|
|
obj-$(CONFIG_ACPI_SBS) += sbs.o
|
|
obj-$(CONFIG_ACPI_HED) += hed.o
|
|
obj-$(CONFIG_ACPI_EC_DEBUGFS) += ec_sys.o
|
|
obj-$(CONFIG_ACPI_BGRT) += bgrt.o
|
|
obj-$(CONFIG_ACPI_CPPC_LIB) += cppc_acpi.o
|
|
obj-$(CONFIG_ACPI_SPCR_TABLE) += spcr.o
|
|
obj-$(CONFIG_ACPI_DEBUGGER_USER) += acpi_dbg.o
|
|
obj-$(CONFIG_ACPI_PPTT) += pptt.o
|
|
obj-$(CONFIG_ACPI_PFRUT) += pfr_update.o pfr_telemetry.o
|
|
|
|
# processor has its own "processor." module_param namespace
|
|
processor-y := processor_driver.o processor_thermal.o
|
|
processor-$(CONFIG_ACPI_PROCESSOR_IDLE) += processor_idle.o
|
|
processor-$(CONFIG_ACPI_CPU_FREQ_PSS) += processor_throttling.o
|
|
processor-$(CONFIG_CPU_FREQ) += processor_perflib.o
|
|
|
|
obj-$(CONFIG_ACPI_PROCESSOR_AGGREGATOR) += acpi_pad.o
|
|
|
|
obj-$(CONFIG_ACPI_APEI) += apei/
|
|
|
|
obj-$(CONFIG_ACPI_EXTLOG) += acpi_extlog.o
|
|
|
|
obj-$(CONFIG_ACPI_CONFIGFS) += acpi_configfs.o
|
|
|
|
obj-y += pmic/
|
|
|
|
video-objs += acpi_video.o video_detect.o
|
|
obj-y += dptf/
|
|
|
|
obj-$(CONFIG_ARM64) += arm64/
|
|
|
|
obj-$(CONFIG_ACPI_VIOT) += viot.o
|
|
|
|
obj-$(CONFIG_RISCV) += riscv/
|