summaryrefslogtreecommitdiff
path: root/cmd/gpt.c
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2023-08-27 11:04:02 -0400
committerTom Rini <trini@konsulko.com>2023-08-27 11:04:02 -0400
commit6a1d3f64c201ed3f6df819cfcf08154b6ec1c02e (patch)
tree566da16c29bc65dabc09afeea06c9840bbb37a90 /cmd/gpt.c
parente508b930021168c788f14977fc101ccc1151b3c8 (diff)
parentcc889bd0754e50a3cd50e8ed3094388480fbec86 (diff)
Merge tag 'efi-2023-10-rc4' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request efi-2023-10-rc4 Documentation: * describe TPL/VPL/SPL boot * Add support for sphinx-prompt and convert TI K3 to use it * board: sdm845: Explicitly add boot.img flashing command EFI: * remove handle from events when deleting it Others: * fix gpt sub-commands setenv and enumerate * add a parameter check in hash_calculate()
Diffstat (limited to 'cmd/gpt.c')
-rw-r--r--cmd/gpt.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/cmd/gpt.c b/cmd/gpt.c
index 007a68eaa72..964056bd28b 100644
--- a/cmd/gpt.c
+++ b/cmd/gpt.c
@@ -691,12 +691,13 @@ static int gpt_enumerate(struct blk_desc *desc)
int ret;
int i;
+ if (part_drv->test(desc))
+ continue;
+
for (i = 1; i < part_drv->max_entries; i++) {
ret = part_drv->get_info(desc, i, &pinfo);
- if (ret) {
- /* no more entries in table */
- break;
- }
+ if (ret)
+ continue;
ptr = &part_list[str_len];
tmp_len = strlen((const char *)pinfo.name);
@@ -711,9 +712,10 @@ static int gpt_enumerate(struct blk_desc *desc)
/* One byte for space(" ") delimiter */
ptr[tmp_len] = ' ';
}
+ if (*part_list)
+ part_list[strlen(part_list) - 1] = 0;
+ break;
}
- if (*part_list)
- part_list[strlen(part_list) - 1] = 0;
debug("setenv gpt_partition_list %s\n", part_list);
return env_set("gpt_partition_list", part_list);
@@ -742,7 +744,7 @@ static int gpt_setenv_part_variables(struct disk_partition *pinfo, int i)
if (ret)
goto fail;
- ret = env_set_ulong("gpt_partition_entry", i);
+ ret = env_set_hex("gpt_partition_entry", i);
if (ret)
goto fail;
@@ -786,10 +788,8 @@ static int gpt_setenv(struct blk_desc *desc, const char *name)
for (i = 1; i < part_drv->max_entries; i++) {
ret = part_drv->get_info(desc, i, &pinfo);
- if (ret) {
- /* no more entries in table */
- break;
- }
+ if (ret)
+ continue;
if (!strcmp(name, (const char *)pinfo.name)) {
/* match found, setup environment variables */