lkml.org 
[lkml]   [2011]   [Nov]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH] fs:partitions:efi.c: bugfix a issue in find_valid_gpt
On Mon, 21 Nov 2011 17:38:01 +0800
wangyanqing <udknight@gmail.com> wrote:

> I meet a 3T disk, which partitioned by Windows 7,
> and linux report unknow partition table. But it can been
> detected the partition table when I add gpt to boot
> parameter.
>
> This issue caused by the find_valid_gpt function will fail
> out when check the legacy mbr failed if there is no gpt boot
> parameter.
>
> if boot without gpt, we should fail back to check the guid
> partition table when check the legacy mbr failed instead of
> fail out.
>
> Signed-off-by: Wang YanQing <udknight@gmail.com>
> ---
> fs/partitions/efi.c | 2 --
> 1 files changed, 0 insertions(+), 2 deletions(-)
>
> diff --git a/fs/partitions/efi.c b/fs/partitions/efi.c
> index 6296b40..302631e 100644
> --- a/fs/partitions/efi.c
> +++ b/fs/partitions/efi.c
> @@ -543,8 +543,6 @@ static int find_valid_gpt(struct parsed_partitions *state, gpt_header **gpt,
> good_pmbr = is_pmbr_valid(legacymbr);
> kfree(legacymbr);
> }
> - if (!good_pmbr)
> - goto fail;
> }
>
> good_pgpt = is_gpt_valid(state, GPT_PRIMARY_PARTITION_TABLE_LBA,

If we make this change then we didn't need to calculate good_pmbr. So
we didn't need to read the LBA and we didn't need to allocate and free
legacymbr. So afaict all this code just goes away:

--- a/fs/partitions/efi.c
+++ a/fs/partitions/efi.c
@@ -534,18 +534,6 @@
return 0;

lastlba = last_lba(state->bdev);
- if (!force_gpt) {
- /* This will be added to the EFI Spec. per Intel after v1.02. */
- legacymbr = kzalloc(sizeof (*legacymbr), GFP_KERNEL);
- if (legacymbr) {
- read_lba(state, 0, (u8 *) legacymbr,
- sizeof (*legacymbr));
- good_pmbr = is_pmbr_valid(legacymbr);
- kfree(legacymbr);
- }
- if (!good_pmbr)
- goto fail;
- }

good_pgpt = is_gpt_valid(state, GPT_PRIMARY_PARTITION_TABLE_LBA,
&pgpt, &pptes);
and I don't know what the implications of that would be.

Matt, could you please take a look at this?


\
 
 \ /
  Last update: 2011-11-21 23:35    [W:0.072 / U:0.160 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site