diff options
author | James Morse <james.morse@arm.com> | 2019-01-29 21:48:39 +0300 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2019-02-08 01:10:44 +0300 |
commit | 0ac234be1a9497498e57d958f4251f5257b116b4 (patch) | |
tree | 87adcd1515c57060d131dd29d8cbccb55c386354 /include/acpi | |
parent | 93066e9aefa16beb10bb4a32c2f1657822b57753 (diff) | |
download | linux-0ac234be1a9497498e57d958f4251f5257b116b4.tar.xz |
ACPI / APEI: Switch estatus pool to use vmalloc memory
The ghes code is careful to parse and round firmware's advertised
memory requirements for CPER records, up to a maximum of 64K.
However when ghes_estatus_pool_expand() does its work, it splits
the requested size into PAGE_SIZE granules.
This means if firmware generates 5K of CPER records, and correctly
describes this in the table, __process_error() will silently fail as it
is unable to allocate more than PAGE_SIZE.
Switch the estatus pool to vmalloc() memory. On x86 vmalloc() memory
may fault and be fixed up by vmalloc_fault(). To prevent this call
vmalloc_sync_all() before an NMI handler could discover the memory.
Signed-off-by: James Morse <james.morse@arm.com>
Reviewed-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'include/acpi')
0 files changed, 0 insertions, 0 deletions