Re: [RFC PATCH 3/4] block: add support for partition table defined in OF

From: Christoph Hellwig
Date: Tue Oct 01 2024 - 04:38:05 EST


On Tue, Sep 24, 2024 at 12:17:36PM +0200, Christian Marangi wrote:
> On Mon, Sep 23, 2024 at 11:34:53PM -0700, Christoph Hellwig wrote:
> > On Mon, Sep 23, 2024 at 12:59:32PM +0200, Christian Marangi wrote:
> > > +#define BOOT0_STR "boot0"
> > > +#define BOOT1_STR "boot1"
> > > +
> >
> > This boot0/1 stuff looks like black magic, so it should probably be
> > documented at very least.
> >
>
> It is but from what I have read in the spec for flash in general (this
> is not limited to eMMC but also apply to UFS) these are hardware
> partition. If the version is high enough these are always present and
> have boot0 and boot1 name hardcoded by the driver.

How does this belong into generic block layer code?

> > > + partitions_np = get_partitions_node(disk_np,
> > > + state->disk->disk_name);
> >
> > disk->disk_name is not a stable identifier and can change from boot to
> > boot due to async probing. You'll need to check a uuid or label instead.
>
> This is really for the 2 special partition up to check the suffix, we
> don't really care about the name. I guess it's acceptable to use
> unstable identifier?

No. ->disk_name is in no way reliable, we can't hardcode that into
a partition parser.