From d86fcfc0871542ae4607b969db7cc16c96774ec1 Mon Sep 17 00:00:00 2001 From: wonghiu45 Date: Sun, 14 May 2023 11:07:49 +0800 Subject: [PATCH] bugfix for purgeable ashmem Signed-off-by: wonghiu45 --- drivers/staging/android/ashmem.c | 3 --- mm/purgeable_ashmem_trigger.c | 2 ++ 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/staging/android/ashmem.c b/drivers/staging/android/ashmem.c index 6af8617902fd..ac74fa6ec581 100644 --- a/drivers/staging/android/ashmem.c +++ b/drivers/staging/android/ashmem.c @@ -979,9 +979,7 @@ bool get_purgeable_ashmem_metadata(struct file *f, struct purgeable_ashmem_metad { struct ashmem_area *asma = f->private_data; - mutex_lock(&ashmem_mutex); if (!asma) { - mutex_unlock(&ashmem_mutex); return false; } pmdata->name = asma->name; @@ -991,7 +989,6 @@ bool get_purgeable_ashmem_metadata(struct file *f, struct purgeable_ashmem_metad pmdata->is_purgeable = asma->is_purgeable; pmdata->id = asma->id; pmdata->create_time = asma->create_time; - mutex_unlock(&ashmem_mutex); return true; } #endif diff --git a/mm/purgeable_ashmem_trigger.c b/mm/purgeable_ashmem_trigger.c index 3cdb55fb6c86..e0124622b320 100644 --- a/mm/purgeable_ashmem_trigger.c +++ b/mm/purgeable_ashmem_trigger.c @@ -89,6 +89,7 @@ static int purgeable_ashmem_trigger_show(struct seq_file *s, void *d) "process_name", "pid", "adj", "fd", "ashmem_name", "size", "id", "time", "ref_count", "purged"); + ashmem_mutex_lock(); rcu_read_lock(); for_each_process(tsk) { if (tsk->flags & PF_KTHREAD) @@ -102,6 +103,7 @@ static int purgeable_ashmem_trigger_show(struct seq_file *s, void *d) task_unlock(tsk); } rcu_read_unlock(); + ashmem_mutex_unlock(); seq_puts(s, "----------------------------------------------------\n"); return 0; } -- Gitee