diff options
author | Ard Biesheuvel <ardb@kernel.org> | 2020-03-08 09:08:52 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2020-03-08 09:58:23 +0100 |
commit | 57648adb317c6f05d80a813130f8b88cecf1facf (patch) | |
tree | 7524247dc648934cc3e98774ab933fc10de21d8f /drivers/firmware | |
parent | dd09fad9d2caad2325a39b766ce9e79cfc690184 (diff) |
efi/x86: Preserve %ebx correctly in efi_set_virtual_address_map()
Commit:
59f2a619a2db8611 ("efi: Add 'runtime' pointer to struct efi")
modified the assembler routine called by efi_set_virtual_address_map(),
to grab the 'runtime' EFI service pointer while running with paging
disabled (which is tricky to do in C code)
After the change, register %ebx is not restored correctly, resulting
in all kinds of weird behavior, so fix that.
Reported-by: Guenter Roeck <linux@roeck-us.net>
Tested-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20200304133515.15035-1-ardb@kernel.org
Link: https://lore.kernel.org/r/20200308080859.21568-22-ardb@kernel.org
Diffstat (limited to 'drivers/firmware')
0 files changed, 0 insertions, 0 deletions