diff options
author | Stephen Warren <swarren@nvidia.com> | 2011-10-28 09:21:46 +0000 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2011-12-05 22:23:21 +0100 |
commit | 4715a81136049167160230efd28eb9d48eeded1f (patch) | |
tree | 286b4133038349c2d8fbc96491ee73e4305a455b | |
parent | 1cdabc4bc78f98155a51890a3077473d7a4d3426 (diff) |
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 <swarren@nvidia.com>
Acked-by: Doug Anderson <dianders@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
Acked-by: Mike Frysinger <vapier@gentoo.org>
Tested-by: Anton Staaf <robotboy@chromium.org>
-rw-r--r-- | disk/part_efi.c | 4 |
1 files changed, 2 insertions, 2 deletions
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; } |