Re: [PATCH] nvmem: core: fix the return value check when calling the notifier chain

From: Srinivas Kandagatla
Date: Fri Feb 15 2019 - 04:28:14 EST




On 14/02/2019 16:23, Bartosz Golaszewski wrote:
diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
index f7301bb4ef3b..a3bed2d9aec7 100644
--- a/drivers/nvmem/core.c
+++ b/drivers/nvmem/core.c
@@ -687,7 +687,7 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config)
goto err_remove_cells;
rval = blocking_notifier_call_chain(&nvmem_notifier, NVMEM_ADD, nvmem);
- if (rval)
+ if (rval < 0)
goto err_remove_cells;

rval will be masked with STOP MASK, so the above statement could be false even if we have error.
So you should consider returning an errono which can be understood by user:

may be something like this:

if (rval & NOTIFY_STOP_MASK) {
rval = notifier_to_errno(rval);
goto err_remove_cells
}


--srini