Re: [PATCH v9 1/7] nvmem: core: Create all cells before adding the nvmem device

From: Srinivas Kandagatla
Date: Fri Aug 11 2023 - 08:26:30 EST




On 11/08/2023 13:11, Miquel Raynal wrote:




nvmem_register() calls device_initialize() and later device_add(),
which is exactly the content of device_register(). Upon error
after device_add(), we currently call device_put(), whereas
device_unregister would call both device_del() and device_put().

I would expect device_del() to be first called upon error before
device_put() *after* device_add() has succeded, no?

That is correct afaiu, if device_add is succeed we need to call device_del(). As the patch now moved the device_add to end of function we really do not need device_del() in err path.


I also see the layout_np below should be freed before jumping in the
error section.

you mean missing of_node_put()?

Yes, I need to call of_node_put() before jumping into the error path.

Are we not already doing it in nvmem_layout_get() and nvmem_add_cells_from_fixed_layout() ?



Thanks,
Miquèl