On Mon, Dec 6, 2021 at 12:04 AM Christoph Hellwig <hch@xxxxxx> wrote: > > mtdblock / mtdblock_ro set part_bits to 0 and thus nevever scanned > partitions. Restore that behavior by setting the GENHD_FL_NO_PART flag. > > Fixes: 1ebe2e5f9d68e94c ("block: remove GENHD_FL_EXT_DEVT") > Reported-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > Tested-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> > --- > drivers/mtd/mtd_blkdevs.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/mtd/mtd_blkdevs.c b/drivers/mtd/mtd_blkdevs.c > index 113f86df76038..243f28a3206b4 100644 > --- a/drivers/mtd/mtd_blkdevs.c > +++ b/drivers/mtd/mtd_blkdevs.c > @@ -346,7 +346,7 @@ int add_mtd_blktrans_dev(struct mtd_blktrans_dev *new) > gd->minors = 1 << tr->part_bits; > gd->fops = &mtd_block_ops; > > - if (tr->part_bits) > + if (tr->part_bits) { > if (new->devnum < 26) > snprintf(gd->disk_name, sizeof(gd->disk_name), > "%s%c", tr->name, 'a' + new->devnum); > @@ -355,9 +355,11 @@ int add_mtd_blktrans_dev(struct mtd_blktrans_dev *new) > "%s%c%c", tr->name, > 'a' - 1 + new->devnum / 26, > 'a' + new->devnum % 26); > - else > + } else { > snprintf(gd->disk_name, sizeof(gd->disk_name), > "%s%d", tr->name, new->devnum); > + gd->flags |= GENHD_FL_NO_PART; > + } Not sure why I didn't spot this until now, but: drivers/mtd/mtd_blkdevs.c: In function ‘add_mtd_blktrans_dev’: drivers/mtd/mtd_blkdevs.c:362:30: error: ‘GENHD_FL_NO_PART’ undeclared (first use in this function); did you mean ‘GENHD_FL_NO_PART_SCAN’? 362 | gd->flags |= GENHD_FL_NO_PART; | ^~~~~~~~~~~~~~~~ | GENHD_FL_NO_PART_SCAN drivers/mtd/mtd_blkdevs.c:362:30: note: each undeclared identifier is reported only once for each function it appears in Hmm? I'm going to revert this one for now, not sure how it could've been tested in this form. -- Jens Axboe