On 25-08-20, Sascha Hauer wrote:
> On Mon, Aug 18, 2025 at 07:44:39PM +0200, Marco Felsch wrote:
> > Partly (re-)sync the nvmem core with Linux. The main changes are:
> >   - The nvmem_cell struct was split into nvmem_cell and nvmem_cell_entry
> >   - The cells are now parsed and registered during nvmem_register(), no
> >     longer during of_nvmem_cell_get()
> >   - The registered cells are now tracked per nvmem device, no longer in
> >     a global nvmem_cells list
> > 
> > The sync is in preparation of adding nvmem-layout driver support and
> > features like accessing nvmem-cells via cdevs.
> > 
> > Signed-off-by: Marco Felsch <m.fel...@pengutronix.de>
> > ---
> >  drivers/nvmem/core.c           | 428 
> > ++++++++++++++++++++++++++---------------
> >  include/linux/nvmem-consumer.h |  17 +-
> >  include/linux/nvmem-provider.h |  58 +++++-
> >  3 files changed, 326 insertions(+), 177 deletions(-)
> > 
> > diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
> > +static int nvmem_add_cells_from_dt(struct nvmem_device *nvmem, struct 
> > device_node *np)
> > +{
> > +   struct device *dev = &nvmem->dev;
> > +   struct device_node *child;
> > +   const __be32 *addr;
> > +   int len, ret;
> > +
> > +   if (!IS_ENABLED(CONFIG_OFTREE))
> > +           return 0;
> > +
> 
> This needs an additional check:
> 
>       if (!np)
>               return 0;
> 
> > +   for_each_child_of_node(np, child) {
> 
> Linux gracefully handles NULL in for_each_child_of_node() whereas
> barebox crashes here.

Damn, thanks for spotting this.

Regards,
  Marco


> 
> Sascha
> 
> -- 
> Pengutronix e.K.                           |                             |
> Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
> 31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
> 

Reply via email to