binder: remove binder_alloc_set_vma()
authorCarlos Llamas <cmllamas@google.com>
Tue, 6 Sep 2022 13:59:46 +0000 (13:59 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 6 Sep 2022 15:02:06 +0000 (17:02 +0200)
The mmap_locked asserts here are not needed since this is only called
back from the mmap stack in ->mmap() and ->close() which always acquire
the lock first. Remove these asserts along with binder_alloc_set_vma()
altogether since it's trivial enough to be consumed by callers.

Cc: Liam R. Howlett <Liam.Howlett@oracle.com>
Signed-off-by: Carlos Llamas <cmllamas@google.com>
Link: https://lore.kernel.org/r/20220906135948.3048225-3-cmllamas@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/android/binder_alloc.c

index 749a4cd..1c39cfc 100644 (file)
@@ -309,27 +309,6 @@ err_no_vma:
        return vma ? -ENOMEM : -ESRCH;
 }
 
-
-static inline void binder_alloc_set_vma(struct binder_alloc *alloc,
-               struct vm_area_struct *vma)
-{
-       unsigned long vm_start = 0;
-
-       /*
-        * Allow clearing the vma with holding just the read lock to allow
-        * munmapping downgrade of the write lock before freeing and closing the
-        * file using binder_alloc_vma_close().
-        */
-       if (vma) {
-               vm_start = vma->vm_start;
-               mmap_assert_write_locked(alloc->mm);
-       } else {
-               mmap_assert_locked(alloc->mm);
-       }
-
-       alloc->vma_addr = vm_start;
-}
-
 static inline struct vm_area_struct *binder_alloc_get_vma(
                struct binder_alloc *alloc)
 {
@@ -793,7 +772,7 @@ int binder_alloc_mmap_handler(struct binder_alloc *alloc,
        buffer->free = 1;
        binder_insert_free_buffer(alloc, buffer);
        alloc->free_async_space = alloc->buffer_size / 2;
-       binder_alloc_set_vma(alloc, vma);
+       alloc->vma_addr = vma->vm_start;
 
        return 0;
 
@@ -983,7 +962,7 @@ int binder_alloc_get_allocated_count(struct binder_alloc *alloc)
  */
 void binder_alloc_vma_close(struct binder_alloc *alloc)
 {
-       binder_alloc_set_vma(alloc, NULL);
+       alloc->vma_addr = 0;
 }
 
 /**