]> git.baikalelectronics.ru Git - kernel.git/commit
binder: add lockless binder_alloc_(set|get)_vma()
authorCarlos Llamas <cmllamas@google.com>
Tue, 2 May 2023 20:12:19 +0000 (20:12 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 30 May 2023 13:03:19 +0000 (14:03 +0100)
commit7b93ab94e01bad293cc9b1a4e6ad0448ebb12d8a
treecc75f21c354324a2fc6513bf84d4908a6919bf49
parent3aba0744b0aaf8d6c5219bc77c84fb8a43661a6a
binder: add lockless binder_alloc_(set|get)_vma()

commit 0fa53349c3acba0239369ba4cd133740a408d246 upstream.

Bring back the original lockless design in binder_alloc to determine
whether the buffer setup has been completed by the ->mmap() handler.
However, this time use smp_load_acquire() and smp_store_release() to
wrap all the ordering in a single macro call.

Also, add comments to make it evident that binder uses alloc->vma to
determine when the binder_alloc has been fully initialized. In these
scenarios acquiring the mmap_lock is not required.

Fixes: 6b4465651707 ("android: binder: stop saving a pointer to the VMA")
Cc: Liam Howlett <liam.howlett@oracle.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: stable@vger.kernel.org
Signed-off-by: Carlos Llamas <cmllamas@google.com>
Link: https://lore.kernel.org/r/20230502201220.1756319-3-cmllamas@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/android/binder_alloc.c