From: Stephen Warren Date: Fri, 28 Oct 2011 09:21:46 +0000 (+0000) Subject: disk: part_efi: fix regression due to incorrect buffer usage X-Git-Tag: v2011.12-rc1~91 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=4715a81136049167160230efd28eb9d48eeded1f;p=u-boot disk: part_efi: fix regression due to incorrect buffer usage Commit deb5ca80275e8cfa74d5680b41204e08a095eca5 "disk: part_efi: fix **pgpt_pte == NULL" modified the code to pass "&gpt_head" to is_gpt_valid() rather than the previous "gpt_head". However, gpt_head is a pointer to the buffer, not the actual buffer, since it was allocated using ALLOC_CACHE_ALIGN_BUFFER. This caused is_gpt_valid() to read the disk block onto the stack rather than into the buffer, causing the code to fail. This change reverts that portion of the commit mentioned above. Signed-off-by: Stephen Warren Acked-by: Doug Anderson Tested-by: Simon Glass Acked-by: Mike Frysinger Tested-by: Anton Staaf --- diff --git a/disk/part_efi.c b/disk/part_efi.c index e7f27147f1..ddf80a73d2 100644 --- a/disk/part_efi.c +++ b/disk/part_efi.c @@ -130,7 +130,7 @@ void print_part_efi(block_dev_desc_t * dev_desc) } /* This function validates AND fills in the GPT header and PTE */ if (is_gpt_valid(dev_desc, GPT_PRIMARY_PARTITION_TABLE_LBA, - &(gpt_head), &gpt_pte) != 1) { + gpt_head, &gpt_pte) != 1) { printf("%s: *** ERROR: Invalid GPT ***\n", __func__); return; } @@ -169,7 +169,7 @@ int get_partition_info_efi(block_dev_desc_t * dev_desc, int part, /* This function validates AND fills in the GPT header and PTE */ if (is_gpt_valid(dev_desc, GPT_PRIMARY_PARTITION_TABLE_LBA, - &(gpt_head), &gpt_pte) != 1) { + gpt_head, &gpt_pte) != 1) { printf("%s: *** ERROR: Invalid GPT ***\n", __func__); return -1; }