[PATCH 2/3] nvmem: core: add locking to nvmem_find_cell

From: Heiner Kallweit
Date: Sun Jun 04 2017 - 07:02:39 EST


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 <hkallweit1@xxxxxxxxx>
---
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 4e07f3f8..1aa6d25a 100644
--- a/drivers/nvmem/core.c
+++ b/drivers/nvmem/core.c
@@ -286,9 +286,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.13.0