From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tom Rini Date: Tue, 3 Oct 2017 12:10:59 -0400 Subject: [U-Boot] [RFC] disk: part_dos: Fix part_test_dos() regression In-Reply-To: References: <1506995402-415-1-git-send-email-festevam@gmail.com> Message-ID: <20171003161059.GA22973@bill-the-cat> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Tue, Oct 03, 2017 at 08:44:31AM -0400, Rob Clark wrote: > On Tue, Oct 3, 2017 at 7:04 AM, Fabio Estevam wrote: > > On Tue, Oct 3, 2017 at 7:57 AM, Rob Clark 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: