lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 18 Feb 2019 17:11:45 +0900 From: Minchan Kim <minchan@...nel.org> To: gregkh@...uxfoundation.org Cc: LKML <linux-kernel@...r.kernel.org>, Minchan Kim <minchan@...nel.org>, Todd Kjos <tkjos@...gle.com>, Martijn Coenen <maco@...roid.com>, Arve Hjønnevåg <arve@...roid.com> Subject: [PATCH] binder: reduce mmap_sem write-side lock binder has used write-side mmap_sem semaphore to release memory mapped at address space of the process. However, right lock to release pages is down_read, not down_write because page table lock already protects the race for parallel freeing. Please do not use mmap_sem write-side lock which is well known contented lock. Cc: Todd Kjos <tkjos@...gle.com> Cc: Martijn Coenen <maco@...roid.com> Cc: Arve Hjønnevåg <arve@...roid.com> Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org> Signed-off-by: Minchan Kim <minchan@...nel.org> --- drivers/android/binder_alloc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/android/binder_alloc.c b/drivers/android/binder_alloc.c index 022cd80e80cc3..2a62553b20fcc 100644 --- a/drivers/android/binder_alloc.c +++ b/drivers/android/binder_alloc.c @@ -964,7 +964,7 @@ enum lru_status binder_alloc_free_page(struct list_head *item, if (!mmget_not_zero(alloc->vma_vm_mm)) goto err_mmget; mm = alloc->vma_vm_mm; - if (!down_write_trylock(&mm->mmap_sem)) + if (!down_read_trylock(&mm->mmap_sem)) goto err_down_write_mmap_sem_failed; } @@ -980,7 +980,7 @@ enum lru_status binder_alloc_free_page(struct list_head *item, trace_binder_unmap_user_end(alloc, index); - up_write(&mm->mmap_sem); + up_read(&mm->mmap_sem); mmput(mm); } -- 2.21.0.rc0.258.g878e2cd30e-goog
Powered by blists - more mailing lists