From: Miquel Raynal <miquel.raynal@bootlin.com>
To: "Rafał Miłecki" <rafal@milecki.pl>
Cc: "Richard Weinberger" <richard@nod.at>,
"Rafał Miłecki" <zajec5@gmail.com>,
linux-mtd@lists.infradead.org,
"Vignesh Raghavendra" <vigneshr@ti.com>,
"Boris Brezillon" <bbrezillon@kernel.org>
Subject: Re: [PATCH] mtd: fix calculating partition end address
Date: Sat, 2 May 2020 20:04:01 +0200 [thread overview]
Message-ID: <20200502200401.7dfa5def@xps13> (raw)
In-Reply-To: <20200309162223.15582d12@xps13>
Hi Rafal,
Miquel Raynal <miquel.raynal@bootlin.com> wrote on Mon, 9 Mar 2020
16:22:23 +0100:
> Hi Rafał,
>
> Rafał Miłecki <rafal@milecki.pl> wrote on Mon, 9 Mar 2020 16:08:12
> +0100:
>
> > On 09.03.2020 15:22, Miquel Raynal wrote:
> > > Rafał Miłecki <rafal@milecki.pl> wrote on Mon, 09 Mar 2020 15:19:10
> > > +0100:
> > >
> > >> On 2020-03-09 15:04, Miquel Raynal wrote:
> > >>> Rafał Miłecki <zajec5@gmail.com> wrote on Mon, 9 Mar 2020 08:44:45
> > >>> +0100:
> > >>> >>>> From: Rafał Miłecki <rafal@milecki.pl>
> > >>>>>> This fixes check for partitions that don't start at beginning of their
> > >>>> parents. Missing partition's offset in formula could result in forcing
> > >>>> read-only incorrectly.
> > >>>>>> Fixes: 6750f61a13a0 ("mtd: improve calculating partition boundaries >> when checking for alignment")
> > >>>> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> > >>>> ---
> > >>>> drivers/mtd/mtdpart.c | 2 +-
> > >>>> 1 file changed, 1 insertion(+), 1 deletion(-)
> > >>>>>> diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c
> > >>>> index 7328c066c5ba..c683b432cc5e 100644
> > >>>> --- a/drivers/mtd/mtdpart.c
> > >>>> +++ b/drivers/mtd/mtdpart.c
> > >>>> @@ -524,7 +524,7 @@ static struct mtd_part *allocate_partition(struct >> mtd_info *parent,
> > >>>> part->name);
> > >>>> }
> > >>>>>> - tmp = part_absolute_offset(parent) + slave->mtd.size;
> > >>>> + tmp = part_absolute_offset(parent) + slave->offset + >> slave->mtd.size;
> > >>>
> > >>> I think you are doing the change at the wrong place, if you want to
> > >>> check where the partition *starts* you should do it a few lines above.
> > >>> But I think the check should be here as well, probably.
> > >>
> > >> The check where the partition *starts* is OK and I don't mean to change
> > >> it. The bug is about calculating absolute *end* address of partition.
> > >
> > > Can you detail a little bit then? Because I don't see the issue anymore
> > > even though I am convinced something is wrong here :)
> >
> > Please consider following partitions layout:
> > * bcm47xxsflash
> > ├─ boot 0x000000000000-0x000000040000
> > └┬ firmware 0x000000040000-0x000001000000
> > ├─ linux 0x00000000001c-0x00000018f800
> > └┬ container 0x00000018f800-0x000000fc0000
> > ├─ foo 0x000000000000-0x000000630800
> > └─ bar 0x000000630800-0x000000e30800 (size: 0x800000)
> >
> >
> > Existing (correct) *start* calculation:
> > bar start: 0 + 0x040000 + 0x18f800 + 0x630800 = 0x800000
> >
> > Existing (wrong) end calculation:
> > bar end: 0 + 0x040000 + 0x18f800 + 0x800000 = 0x9cf800
> >
> > Fixed (correct) end calculation:
> > bar end: 0 + 0x040000 + 0x18f800 + 0x630800 + 0x800000 = 0x1000000
>
> Ok I get it! I think mentioning "partitions that don't start at
> beginning of their parents", despite being true, was misleading to me
> as I understood "leaving extra space with the start of their parent".
>
> I suppose you also have the issue with "container" too?
>
> Anyway, I think the fix is fine. A better formulation for the commit
> log would be welcome :) (maybe adding this example is a good idea!)
I don't remember having applied this fix yet, would you mind resending
this patch with an enhanced commit log (your example was a good one I
think).
Thanks,
Miquèl
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
next prev parent reply other threads:[~2020-05-02 18:04 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-09 7:44 [PATCH] mtd: fix calculating partition end address Rafał Miłecki
2020-03-09 14:04 ` Miquel Raynal
2020-03-09 14:19 ` Rafał Miłecki
2020-03-09 14:22 ` Miquel Raynal
2020-03-09 15:08 ` Rafał Miłecki
2020-03-09 15:22 ` Miquel Raynal
2020-05-02 18:04 ` Miquel Raynal [this message]
2020-05-02 19:36 ` Rafał Miłecki
2020-05-02 19:53 ` Miquel Raynal
2020-03-24 21:58 ` Miquel Raynal
2020-03-24 22:06 ` Rafał Miłecki
2020-03-24 22:11 ` Miquel Raynal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200502200401.7dfa5def@xps13 \
--to=miquel.raynal@bootlin.com \
--cc=bbrezillon@kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=rafal@milecki.pl \
--cc=richard@nod.at \
--cc=vigneshr@ti.com \
--cc=zajec5@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.