From: Heiner Kallweit <[email protected]>

Adding entries to nvmem_cells and deleting entries from it is
protected by nvmem_cells_mutex. Therefore this mutex should
also protect iterating over the list.

Signed-off-by: Heiner Kallweit <[email protected]>
Signed-off-by: Srinivas Kandagatla <[email protected]>
---
 drivers/nvmem/core.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
index 0cbac71195b5..4c49285168fb 100644
--- a/drivers/nvmem/core.c
+++ b/drivers/nvmem/core.c
@@ -287,9 +287,15 @@ static struct nvmem_cell *nvmem_find_cell(const char 
*cell_id)
 {
        struct nvmem_cell *p;
 
+       mutex_lock(&nvmem_cells_mutex);
+
        list_for_each_entry(p, &nvmem_cells, node)
-               if (p && !strcmp(p->name, cell_id))
+               if (p && !strcmp(p->name, cell_id)) {
+                       mutex_unlock(&nvmem_cells_mutex);
                        return p;
+               }
+
+       mutex_unlock(&nvmem_cells_mutex);
 
        return NULL;
 }
-- 
2.11.0

Reply via email to