aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorZach Bobroff <zacharyb@ami.com>2013-06-07 13:02:50 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-07-21 18:21:27 -0700
commit587562a77c7ab453d16f6b6bb02951bd66c44982 (patch)
treee64eb8d9ee9dcd78a593bec600674356e5165b2e /include
parenta2ebe4443fd55755cae5834e3f3021d3572cc463 (diff)
x86, efi: retry ExitBootServices() on failure
commit d3768d885c6ccbf8a137276843177d76c49033a7 upstream. ExitBootServices is absolutely supposed to return a failure if any ExitBootServices event handler changes the memory map. Basically the get_map loop should run again if ExitBootServices returns an error the first time. I would say it would be fair that if ExitBootServices gives an error the second time then Linux would be fine in returning control back to BIOS. The second change is the following line: again: size += sizeof(*mem_map) * 2; Originally you were incrementing it by the size of one memory map entry. The issue here is all related to the low_alloc routine you are using. In this routine you are making allocations to get the memory map itself. Doing this allocation or allocations can affect the memory map by more than one record. [ mfleming - changelog, code style ] Signed-off-by: Zach Bobroff <zacharyb@ami.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions