On Tue, Oct 03, 2017 at 08:44:31AM -0400, Rob Clark wrote:
> On Tue, Oct 3, 2017 at 7:04 AM, Fabio Estevam <feste...@gmail.com> wrote:
> > On Tue, Oct 3, 2017 at 7:57 AM, Rob Clark <robdcl...@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

Attachment: signature.asc
Description: PGP signature

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to