Hi Bernhard, Minor nits below. Bernhard Frauendienst <kernel@xxxxxxxxxxxxxxxxx> wrote on Thu, 6 Sep 2018 18:14:11 +0200: > Add function to retrieve a mtd device by its OF node. Since drivers can > assign arbitrary names to mtd devices in the absence of a label > property, there is no other reliable way to retrieve a mtd device for a > given OF node. > > Signed-off-by: Bernhard Frauendienst <kernel@xxxxxxxxxxxxxxxxx> > --- > drivers/mtd/mtdcore.c | 39 +++++++++++++++++++++++++++++++++++++++ > include/linux/mtd/mtd.h | 2 ++ > 2 files changed, 41 insertions(+) > > diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c > index 97ac219c082e..e59b6a06814c 100644 > --- a/drivers/mtd/mtdcore.c > +++ b/drivers/mtd/mtdcore.c > @@ -926,6 +926,45 @@ struct mtd_info *get_mtd_device_nm(const char *name) > } > EXPORT_SYMBOL_GPL(get_mtd_device_nm); > > +/** > + * get_mtd_device_by_node - obtain a validated handle for an MTD device > + * by of_node > + * @name: OF node of MTD device to open Should be @of_node > + * > + * This function returns MTD device description structure in case of > + * success and an error code in case of failure. > + */ > +struct mtd_info *get_mtd_device_by_node(const struct device_node *of_node) > +{ > + int err = -ENODEV; > + struct mtd_info *mtd = NULL, *other; > + > + mutex_lock(&mtd_table_mutex); > + > + mtd_for_each_device(other) { > + if (of_node == other->dev.of_node) { > + mtd = other; > + break; > + } > + } > + > + if (!mtd) > + goto out_unlock; > + > + err = __get_mtd_device(mtd); > + if (err) > + goto out_unlock; > + > + mutex_unlock(&mtd_table_mutex); > + return mtd; > + > +out_unlock: > + mutex_unlock(&mtd_table_mutex); > + return ERR_PTR(err); > +} > +EXPORT_SYMBOL_GPL(get_mtd_device_by_node); > + > + Extra space here > void put_mtd_device(struct mtd_info *mtd) > { > mutex_lock(&mtd_table_mutex); > diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h > index cd0be91bdefa..fe71358f8eaa 100644 > --- a/include/linux/mtd/mtd.h > +++ b/include/linux/mtd/mtd.h > @@ -570,6 +570,8 @@ extern struct mtd_info *get_mtd_device(struct mtd_info *mtd, int num); > extern int __get_mtd_device(struct mtd_info *mtd); > extern void __put_mtd_device(struct mtd_info *mtd); > extern struct mtd_info *get_mtd_device_nm(const char *name); > +extern struct mtd_info *get_mtd_device_by_node( > + const struct device_node *of_node); > extern void put_mtd_device(struct mtd_info *mtd); > > Otherwise, Reviewed-by: Miquel Raynal <miquel.raynal@xxxxxxxxxxx> Thanks, Miquèl ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/