Lv Zheng
83848fbe7e
ACPICA: Tables: Mechanism to handle late stage acpi_get_table() imbalance
...
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>
2017-06-12 14:09:29 +02:00
..
2017-02-09 14:47:42 +01:00
2017-02-09 14:47:02 +01:00
2017-04-28 21:56:10 +02:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-04-28 21:56:10 +02:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-04-28 21:56:10 +02:00
2017-04-28 21:56:10 +02:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-04-28 21:56:10 +02:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-04-28 21:56:10 +02:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-27 18:43:46 -08:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-04-27 00:31:00 +02:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-04-27 00:31:00 +02:00
2017-02-09 14:47:02 +01:00
2017-04-27 00:31:00 +02:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-04-27 00:31:00 +02:00
2017-04-27 00:31:00 +02:00
2017-04-27 00:31:00 +02:00
2017-04-27 00:31:00 +02:00
2017-04-27 00:31:00 +02:00
2017-04-27 00:31:00 +02:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-04-27 00:31:00 +02:00
2017-02-09 14:47:02 +01:00
2017-04-27 00:31:00 +02:00
2017-04-27 00:31:00 +02:00
2017-04-27 00:31:00 +02:00
2017-02-09 14:47:02 +01:00
2017-04-27 00:31:00 +02:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-04-27 00:31:00 +02:00
2017-02-09 14:47:02 +01:00
2017-04-27 00:31:00 +02:00
2017-04-27 00:31:00 +02:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-04-27 00:31:00 +02:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-04-11 22:11:09 +02:00
2017-04-27 00:31:00 +02:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-27 18:43:46 -08:00
2017-02-09 14:47:02 +01:00
2017-04-27 00:31:00 +02:00
2017-04-27 00:31:00 +02:00
2017-02-09 14:47:02 +01:00
2017-04-27 00:31:00 +02:00
2017-02-09 14:47:02 +01:00
2017-02-27 18:43:46 -08:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-04-28 21:56:10 +02:00
2017-04-28 21:56:10 +02:00
2017-04-28 21:56:10 +02:00
2017-04-28 21:56:10 +02:00
2017-04-28 21:56:10 +02:00
2017-04-27 00:31:00 +02:00
2017-02-09 14:47:02 +01:00
2017-04-28 21:56:10 +02:00
2017-04-28 21:56:10 +02:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-06-12 14:09:29 +02:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-04-28 21:56:10 +02:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-04-27 00:31:01 +02:00
2017-02-09 14:47:02 +01:00
2017-04-28 21:56:10 +02:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-06-05 23:33:39 +02:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00
2017-04-27 00:30:59 +02:00
2017-02-09 14:47:02 +01:00
2017-02-09 14:47:02 +01:00