Lv Zheng b7ab82151e Tables: Fix regression introduced by a too early mechanism enabling
On linux, 2 ioremap() mechanisms are implemented for 2 stages:
1. During early boot, before memory manager is fully initialized.
2. For late boot and runtime, after memory manager is fully
   initialized.
Maps mapped in the early stage can not be used by late stage.

So for early stage, linux implements get/put like table APIs to free table
mappings, and for late stage, linux only invokes get table APIs.

We merged 2 implementations into single style API set:
AcpiGetTable() and AcpiPutTable(). During early stage, we want the
"ValidationCount" based mechanism to fully work to release table mappings,
while for late stages, if get/put invocations are balanced, we can free
mappings, but if not (we'll reach the warnings in
AcpiTbGetTable()/AcpiTbPutTable()), we should stop unmapping tables.

The design should work but unfortunately, "return_ACPI_STAUS(AE_LIMIT)"
prevents AcpiGetTable() from returning mapped table pointer to the
callers and the error message can flood kernel logs.

Thus this patch removes the error value returned by AcpiTbGetTable()
in that case along with the accompanying error message to fix the
issue.

Reported-by: Anush Seetharaman <anush.seetharaman@intel.com>
Reported-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2017-06-26 08:30:17 +08:00
2015-07-17 08:57:28 -07:00
Description
No description provided
170 MiB
Languages
ASL 68.6%
C 29%
Yacc 0.8%
HTML 0.5%
Shell 0.5%
Other 0.6%