Re: [PATCH] mtd: set mtd partition panic write flag

From: Richard Weinberger
Date: Tue Nov 05 2019 - 18:03:51 EST


----- UrsprÃngliche Mail -----
> Von: "Miquel Raynal" <miquel.raynal@xxxxxxxxxxx>
> An: "Kamal Dasu" <kdasu.kdev@xxxxxxxxx>
> CC: "linux-mtd" <linux-mtd@xxxxxxxxxxxxxxxxxxx>, "bcm-kernel-feedback-list" <bcm-kernel-feedback-list@xxxxxxxxxxxx>,
> "linux-kernel" <linux-kernel@xxxxxxxxxxxxxxx>, "David Woodhouse" <dwmw2@xxxxxxxxxxxxx>, "Brian Norris"
> <computersforpeace@xxxxxxxxx>, "Marek Vasut" <marek.vasut@xxxxxxxxx>, "richard" <richard@xxxxxx>, "Vignesh Raghavendra"
> <vigneshr@xxxxxx>
> Gesendet: Dienstag, 5. November 2019 20:03:44
> Betreff: Re: [PATCH] mtd: set mtd partition panic write flag

> Hi Kamal,
>
> Richard, something to look into below :)

I'm still recovering from a bad cold. So my brain is not fully working ;)

> Kamal Dasu <kdasu.kdev@xxxxxxxxx> wrote on Mon, 21 Oct 2019 15:32:52
> -0400:
>
>> Check mtd panic write flag and set the mtd partition panic
>> write flag so that low level drivers can use it to take
>> required action to ensure oops data gets written to assigned
>> mtd partition.
>
> I feel there is something wrong with the current implementation
> regarding partitions but I am not sure this is the right fix. Is this
> something you detected with some kind of static checker or did you
> actually experience an issue?
>
> In the commit log you say "check mtd (I suppose you mean the
> master) panic write flag and set the mtd partition panic write flag"
> which makes sense, but in reality my understanding is that you do the
> opposite: you check mtd->oops_panic_write which is the partitions'
> structure, and set part->parent->oops_panic_write which is the master's
> flag.

IIUC the problem happens when you run mtdoops on a mtd partition.
The the flag is only set for the partition instead for the master.

So the right fix would be setting the parent's oops_panic_write in
mtd_panic_write().
Then we don't have to touch mtdpart.c

Thanks,
//richard