Re: GPT detection regression in efi.c from commit 27a7c64

From: Davidlohr Bueso
Date: Fri Sep 13 2013 - 14:07:41 EST


On Fri, 2013-09-13 at 13:01 -0400, Matt Porter wrote:
> On 09/13/2013 12:28 PM, Davidlohr Bueso wrote:
> > Cc'ing Linus.
> >
> > On Fri, 2013-09-13 at 10:50 -0400, Matt Porter wrote:
> >> The commit, "27a7c64 partitions/efi: account for pmbr size in lba", that
> >> was just merged in 3.12-rc caused a regression on my system with a GPT
> >> formatted eMMC device. In 3.11, the GPT partition table was detected
> >> fine but now a partition table is not detected.
> >>
> >> Not being a GPT expert, I did some research and found that the tool used
> >> to create the PMBR on my system shares characteristics with what is
> >> mentioned in an explanation of Microsoft created PMBRs [1]. In short,
> >> the size_in_lba field incorrectly has 0xffffffff even though I have a
> >> <2TiB drive (16GiB eMMC).
> >
> > *sigh*. So Microsoft decided to do its own version of the GPT specs.
>
> Don't sound so surprised. :)
>
> > Up until now, Linux was incorrectly enforcing pMBR checks: not
> > recognizing valid labels and vice versa, as with the case you are
> > mentioning now. The changes that went in the 3.12 merge window attempt
> > to address those concerns, enforcing the correct checks - which is also
> > how Linux partitioning tools do it (fdisk, parted).
>
> Understood, and we are fixing our own manufacturing tool that was used
> to prepopulate the eMMC. I definitely prefer to have this correct for my
> case.

Come to think of it, we do have a long existing workaround: the
force_gpt option. Setting it will bypass any MBR checking
(is_pmbr_valid(), specifically).

Thanks,
Davidlohr

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/