mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-02 09:46:37 +03:00
efi_loader: fix hii keyboard layout pointer computation
The EFI_HII_KEYBOARD_LAYOUT field `layout_length' is expressed in bytes,
but we add it to the `layout' pointer with (scaled) pointer arithmetic.
When adding an HII keyboard package with multiple keyboard layouts, this
results in only the first layout being added correctly; fix it.
Fixes: 8d3b77e36e ("efi: hii: add keyboard layout package support")
Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Cc: Tom Rini <trini@konsulko.com>
Cc: AKASHI Takahiro <akashi.tkhro@gmail.com>
This commit is contained in:
committed by
Heinrich Schuchardt
parent
e49c84f7bb
commit
ec95a60d9d
@@ -324,7 +324,8 @@ add_keyboard_package(struct efi_hii_packagelist *hii,
|
||||
list_add_tail(&layout_data->link_sys,
|
||||
&efi_keyboard_layout_list);
|
||||
|
||||
layout += layout_length;
|
||||
layout = (struct efi_hii_keyboard_layout *)
|
||||
((uintptr_t)layout + layout_length);
|
||||
}
|
||||
|
||||
list_add_tail(&package_data->link, &hii->keyboard_packages);
|
||||
|
||||
Reference in New Issue
Block a user