diff options
author | Alexander Graf <agraf@suse.de> | 2016-04-11 14:16:20 (GMT) |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2016-04-18 21:11:37 (GMT) |
commit | ecbe1a07c507d37aeb5f0f9ce1c4cc20c70fec64 (patch) | |
tree | 976d4baec38a0a6fe6508985401681ead88fb572 | |
parent | c07ad7c03588ab7b8f87b6567ac9202cf32b9bbe (diff) | |
download | u-boot-ecbe1a07c507d37aeb5f0f9ce1c4cc20c70fec64.tar.xz |
efi_loader: Increase path string to 32 characters
Whenever we want to tell our payload about a path, we limit ourselves
to a reasonable amount of characters. So far we only passed in device
names - exceeding 16 chars was unlikely there.
However by now we also pass real file path information, so let's increase
the limit to 32 characters. That way common paths like "boot/efi/bootaa64.efi"
fit just fine.
Signed-off-by: Alexander Graf <agraf@suse.de>
-rw-r--r-- | cmd/bootefi.c | 2 | ||||
-rw-r--r-- | include/efi_api.h | 2 | ||||
-rw-r--r-- | lib/efi_loader/efi_disk.c | 4 |
3 files changed, 4 insertions, 4 deletions
diff --git a/cmd/bootefi.c b/cmd/bootefi.c index adcf645..f502996 100644 --- a/cmd/bootefi.c +++ b/cmd/bootefi.c @@ -208,7 +208,7 @@ U_BOOT_CMD( void efi_set_bootdev(const char *dev, const char *devnr, const char *path) { __maybe_unused struct blk_desc *desc; - char devname[16] = { 0 }; /* dp->str is u16[16] long */ + char devname[32] = { 0 }; /* dp->str is u16[32] long */ char *colon; /* Assemble the condensed device name we use in efi_disk.c */ diff --git a/include/efi_api.h b/include/efi_api.h index 6960448..51d7586 100644 --- a/include/efi_api.h +++ b/include/efi_api.h @@ -259,7 +259,7 @@ struct efi_device_path { struct efi_device_path_file_path { struct efi_device_path dp; - u16 str[16]; + u16 str[32]; }; #define BLOCK_IO_GUID \ diff --git a/lib/efi_loader/efi_disk.c b/lib/efi_loader/efi_disk.c index b3d56a8..28e5b7f 100644 --- a/lib/efi_loader/efi_disk.c +++ b/lib/efi_loader/efi_disk.c @@ -194,7 +194,7 @@ static int efi_disk_create_eltorito(struct blk_desc *desc, { int disks = 0; #ifdef CONFIG_ISO_PARTITION - char devname[16] = { 0 }; /* dp->str is u16[16] long */ + char devname[32] = { 0 }; /* dp->str is u16[32] long */ disk_partition_t info; int part = 1; @@ -231,7 +231,7 @@ int efi_disk_register(void) printf("Scanning disks on %s...\n", cur_drvr->name); for (i = 0; i < 4; i++) { struct blk_desc *desc; - char devname[16] = { 0 }; /* dp->str is u16[16] long */ + char devname[32] = { 0 }; /* dp->str is u16[32] long */ desc = blk_get_dev(cur_drvr->name, i); if (!desc) |