[U-Boot] [RFC] disk: part_dos: Fix part_test_dos() regression

Tom Rini trini at konsulko.com
Tue Oct 3 16:10:59 UTC 2017


On Tue, Oct 03, 2017 at 08:44:31AM -0400, Rob Clark wrote:
> On Tue, Oct 3, 2017 at 7:04 AM, Fabio Estevam <festevam at gmail.com> wrote:
> > On Tue, Oct 3, 2017 at 7:57 AM, Rob Clark <robdclark at gmail.com> wrote:
> >
> >> btw, if I had to take a guess, I'd say that perhaps blksz is smaller
> >> than 'legacy_mbr', so maybe rather than allocating blksize, it should
> >> be DIV_ROUND_UP(sizeof(legacy_mbr), dev_desc->blksz).. or I guess that
> >> could be simplified to not use division if blksz is a power of two
> >
> > Yes, it does seem to be size related as we are size constraint in SPL.
> >
> > Just tried your suggestion:
> >
> > --- a/disk/part_dos.c
> > +++ b/disk/part_dos.c
> > @@ -89,7 +89,9 @@ static int test_block_type(unsigned char *buffer)
> >
> >  static int part_test_dos(struct blk_desc *dev_desc)
> >  {
> > -       ALLOC_CACHE_ALIGN_BUFFER(legacy_mbr, mbr, dev_desc->blksz);
> > +       ALLOC_CACHE_ALIGN_BUFFER(legacy_mbr, mbr,
> > +                                DIV_ROUND_UP(sizeof(legacy_mbr),
> > +                                dev_desc->blksz));
> >
> >         if (blk_dread(dev_desc, 0, 1, (ulong *)mbr) != 1)
> >                 return -1;
> >
> > and it does work for me :-)
> 
> Ok, I guess if blksz can actually be less than the mbr, we probably
> also need a similar fix in is_gpt_valid() (and also to pass the
> correct # of blks to blk_dread())..  I'll make a patch in a few..

If you want to re-work / include my changes in
https://patchwork.ozlabs.org/patch/820884/ in v2 of
https://patchwork.ozlabs.org/patch/820920/ please feel free (and make
sure we don't have / introduce more similar ones), thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20171003/8f9f264b/attachment.sig>


More information about the U-Boot mailing list