[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20151214192402.GA124396@google.com>
Date: Mon, 14 Dec 2015 11:24:02 -0800
From: Brian Norris <computersforpeace@...il.com>
To: Heiko Schocher <hs@...x.de>
Cc: linux-mtd@...ts.infradead.org, linux-kernel@...r.kernel.org,
Boris Brezillon <boris.brezillon@...e-electrons.com>,
Frans Klaver <fransklaver@...il.com>
Subject: Re: [PATCH for-4.4] mtd: fix cmdlinepart parser, early naming for
auto-filled MTD
On Fri, Dec 11, 2015 at 09:39:18PM -0800, Brian Norris wrote:
> On Sat, Dec 12, 2015 at 05:45:21AM +0100, Heiko Schocher wrote:
> > Am 12.12.2015 um 00:58 schrieb Brian Norris:
> > >Commit 807f16d4db95 ("mtd: core: set some defaults when dev.parent is
> > >set") attempted to provide some default settings for MTDs that
> > > (a) assign the parent device and
> > > (b) don't provide their own name or owner
> > >
> > >However, this isn't a perfect drop-in replacement for the boilerplate
> > >found in some drivers, because the MTD name is used by partition
> > >parsers like cmdlinepart, but the name isn't set until add_mtd_device(),
> > >after the parsing is completed. This means cmdlinepart sees a NULL name
> > >and therefore will not work properly.
> > >
> > >Fix this by moving the default name and owner assignment to be first in
> > >the MTD registration process.
> > >
> > >Fixes: 807f16d4db95 ("mtd: core: set some defaults when dev.parent is set")
> > >Reported-by: Heiko Schocher <hs@...x.de>
> > >Signed-off-by: Brian Norris <computersforpeace@...il.com>
> > >Cc: Heiko Schocher <hs@...x.de>
> > >Cc: Frans Klaver <fransklaver@...il.com>
> > >---
> > >Heiko, can you provide testing feedback (e.g., 'Tested-by: ...')?
> >
> > Sorry, does not work for me:
> >
> > Based on:
> > pollux:linux hs [20151212] $ git describe master
> > v4.4-rc4-135-gb9d8545
> >
> > and this patch, shows the same problem,
>
> [...]
BTW, can you please include the relevant log snippets when replying in
the future?
> Ugh, I see the problem. In nand_base.c, nand_get_flash_type():
>
> if (!mtd->name)
> mtd->name = type->name;
Specifically, I think we could hack around this with something like the
following additional patch. Untested:
diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index ece544efccc3..9f169566fba4 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -3826,6 +3826,9 @@ static struct nand_flash_dev *nand_get_flash_type(struct mtd_info *mtd,
if (!type)
type = nand_flash_ids;
+ if (!mtd->name && mtd->dev.parent)
+ mtd->name = dev_name(mtd->dev.parent);
+
for (; type->name != NULL; type++) {
if (is_full_id_nand(type)) {
if (find_full_id_nand(mtd, chip, type, id_data, &busw))
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists