forked from Minki/linux
83848fbe7e
Considering this case: 1. A program opens a sysfs table file 65535 times, it can increase validation_count and first increment cause the table to be mapped: validation_count = 65535 2. AML execution causes "Load" to be executed on the same table, this time it cannot increase validation_count, so validation_count remains: validation_count = 65535 3. The program closes sysfs table file 65535 times, it can decrease validation_count and the last decrement cause the table to be unmapped: validation_count = 0 4. AML code still accessing the loaded table, kernel crash can be observed. To prevent that from happening, add a validation_count threashold. When it is reached, the validation_count can no longer be incremented/decremented to invalidate the table descriptor (means preventing table unmappings) Note that code added in acpi_tb_put_table() is actually a no-op but changes the warning message into a "warn once" one. Lv Zheng. Signed-off-by: Lv Zheng <lv.zheng@intel.com> [ rjw: Changelog, comments ] Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> |
||
---|---|---|
.. | ||
platform | ||
acbuffer.h | ||
acconfig.h | ||
acexcep.h | ||
acnames.h | ||
acoutput.h | ||
acpi_bus.h | ||
acpi_drivers.h | ||
acpi_io.h | ||
acpi_lpat.h | ||
acpi_numa.h | ||
acpi.h | ||
acpiosxf.h | ||
acpixf.h | ||
acrestyp.h | ||
actbl1.h | ||
actbl2.h | ||
actbl3.h | ||
actbl.h | ||
actypes.h | ||
acuuid.h | ||
apei.h | ||
button.h | ||
cppc_acpi.h | ||
ghes.h | ||
hed.h | ||
pcc.h | ||
pdc_intel.h | ||
processor.h | ||
reboot.h | ||
video.h |