All of lore.kernel.org
 help / color / mirror / Atom feed
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: Mon, 9 Mar 2020 16:22:23 +0100	[thread overview]
Message-ID: <20200309162223.15582d12@xps13> (raw)
In-Reply-To: <e2873d10-2513-8d09-6601-cb542453e10f@milecki.pl>

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!)


Thanks,
Miquèl

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

  reply	other threads:[~2020-03-09 15:22 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 [this message]
2020-05-02 18:04           ` Miquel Raynal
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=20200309162223.15582d12@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.