mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-21 12:25:27 +00:00
efi_loader: efi_dp_from_lo() don't copy GUID
Instead of copying a GUID and then using a pointer to the copy for calling guidcmp(), just pass the pointer to the orginal GUID. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
This commit is contained in:
parent
ebdea88d57
commit
0421735dd8
4 changed files with 7 additions and 5 deletions
|
@ -1169,7 +1169,7 @@ static void show_efi_boot_opt_data(u16 *varname16, void *data, size_t *size)
|
||||||
printf(" file_path: %ls\n", dp_str);
|
printf(" file_path: %ls\n", dp_str);
|
||||||
efi_free_pool(dp_str);
|
efi_free_pool(dp_str);
|
||||||
|
|
||||||
initrd_path = efi_dp_from_lo(&lo, &initrd_dp_size, lf2_initrd_guid);
|
initrd_path = efi_dp_from_lo(&lo, &initrd_dp_size, &lf2_initrd_guid);
|
||||||
if (initrd_path) {
|
if (initrd_path) {
|
||||||
dp_str = efi_dp_str(initrd_path);
|
dp_str = efi_dp_str(initrd_path);
|
||||||
printf(" initrd_path: %ls\n", dp_str);
|
printf(" initrd_path: %ls\n", dp_str);
|
||||||
|
|
|
@ -842,7 +842,8 @@ struct efi_load_option {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct efi_device_path *efi_dp_from_lo(struct efi_load_option *lo,
|
struct efi_device_path *efi_dp_from_lo(struct efi_load_option *lo,
|
||||||
efi_uintn_t *size, efi_guid_t guid);
|
efi_uintn_t *size,
|
||||||
|
const efi_guid_t *guid);
|
||||||
struct efi_device_path *efi_dp_concat(const struct efi_device_path *dp1,
|
struct efi_device_path *efi_dp_concat(const struct efi_device_path *dp1,
|
||||||
const struct efi_device_path *dp2);
|
const struct efi_device_path *dp2);
|
||||||
efi_status_t efi_deserialize_load_option(struct efi_load_option *lo, u8 *data,
|
efi_status_t efi_deserialize_load_option(struct efi_load_option *lo, u8 *data,
|
||||||
|
|
|
@ -1218,7 +1218,8 @@ ssize_t efi_dp_check_length(const struct efi_device_path *dp,
|
||||||
*/
|
*/
|
||||||
struct
|
struct
|
||||||
efi_device_path *efi_dp_from_lo(struct efi_load_option *lo,
|
efi_device_path *efi_dp_from_lo(struct efi_load_option *lo,
|
||||||
efi_uintn_t *size, efi_guid_t guid)
|
efi_uintn_t *size,
|
||||||
|
const efi_guid_t *guid)
|
||||||
{
|
{
|
||||||
struct efi_device_path *fp = lo->file_path;
|
struct efi_device_path *fp = lo->file_path;
|
||||||
struct efi_device_path_vendor *vendor;
|
struct efi_device_path_vendor *vendor;
|
||||||
|
@ -1233,7 +1234,7 @@ efi_device_path *efi_dp_from_lo(struct efi_load_option *lo,
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
vendor = (struct efi_device_path_vendor *)fp;
|
vendor = (struct efi_device_path_vendor *)fp;
|
||||||
if (!guidcmp(&vendor->guid, &guid))
|
if (!guidcmp(&vendor->guid, guid))
|
||||||
return efi_dp_dup(fp);
|
return efi_dp_dup(fp);
|
||||||
}
|
}
|
||||||
log_debug("VenMedia(%pUl) not found in %ls\n", &guid, lo->label);
|
log_debug("VenMedia(%pUl) not found in %ls\n", &guid, lo->label);
|
||||||
|
|
|
@ -83,7 +83,7 @@ struct efi_device_path *efi_get_dp_from_boot(const efi_guid_t guid)
|
||||||
if (ret != EFI_SUCCESS)
|
if (ret != EFI_SUCCESS)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
tmp = efi_dp_from_lo(&lo, &size, guid);
|
tmp = efi_dp_from_lo(&lo, &size, &guid);
|
||||||
if (!tmp)
|
if (!tmp)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue