Messages in this thread Patch in this message | | | From | Qian Cai <> | Subject | [PATCH -next] locking/percpu-rwsem: fix a task_struct refcount | Date | Thu, 26 Mar 2020 23:10:57 -0400 |
| |
There are some memory leaks due to a missing put_task_struct().
Fixes: 7f26482a872c ("locking/percpu-rwsem: Remove the embedded rwsem") Signed-off-by: Qian Cai <cai@lca.pw> --- kernel/locking/percpu-rwsem.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/kernel/locking/percpu-rwsem.c b/kernel/locking/percpu-rwsem.c index a008a1ba21a7..6f487e5d923f 100644 --- a/kernel/locking/percpu-rwsem.c +++ b/kernel/locking/percpu-rwsem.c @@ -123,8 +123,10 @@ static int percpu_rwsem_wake_function(struct wait_queue_entry *wq_entry, struct percpu_rw_semaphore *sem = key; /* concurrent against percpu_down_write(), can get stolen */ - if (!__percpu_rwsem_trylock(sem, reader)) + if (!__percpu_rwsem_trylock(sem, reader)) { + put_task_struct(p); return 1; + } list_del_init(&wq_entry->entry); smp_store_release(&wq_entry->private, NULL); -- 2.21.0 (Apple Git-122.2)
| |