diff --git a/drivers/char/adsprpc.c b/drivers/char/adsprpc.c index 0456fa1f2e24..1f1ded635450 100644 --- a/drivers/char/adsprpc.c +++ b/drivers/char/adsprpc.c @@ -1002,9 +1002,11 @@ static void fastrpc_mmap_free(struct fastrpc_mmap *map, uint32_t flags) } if (map->flags == ADSP_MMAP_HEAP_ADDR || map->flags == ADSP_MMAP_REMOTE_HEAP_ADDR) { + spin_lock(&me->hlock); map->refs--; if (!map->refs) hlist_del_init(&map->hn); + spin_unlock(&me->hlock); if (map->refs > 0) { ADSPRPC_WARN( "multiple references for remote heap size %zu va 0x%lx ref count is %d\n",