ACPI: Drop the custom_method debugfs interface
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 16 Feb 2024 16:38:55 +0000 (17:38 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 22 Feb 2024 10:17:48 +0000 (11:17 +0100)
commit0cc46f1a52b4220ec11d98a01575909ca820a7b4
tree84566315c00bcbd4d567b40b497a9fe38a03a378
parentc763aefeeb3ebeb05efff3d204ffe8fa7872da8f
ACPI: Drop the custom_method debugfs interface

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/
Link: https://lore.kernel.org/linux-acpi/20231111132402.4142-1-shiqiang.deng213@gmail.com/
Link: https://stackoverflow.com/questions/62849113/how-to-unload-an-overlay-loaded-using-acpi-config-sysfs
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>
Documentation/firmware-guide/acpi/index.rst
Documentation/firmware-guide/acpi/method-customizing.rst [deleted file]
drivers/acpi/Kconfig
drivers/acpi/Makefile
drivers/acpi/custom_method.c [deleted file]