Loading drivers/android/binder_alloc.c +8 −10 Original line number Diff line number Diff line Loading @@ -924,14 +924,13 @@ enum lru_status binder_alloc_free_page(struct list_head *item, index = page - alloc->pages; page_addr = (uintptr_t)alloc->buffer + index * PAGE_SIZE; vma = alloc->vma; if (vma) { if (!mmget_not_zero(alloc->vma_vm_mm)) goto err_mmget; mm = alloc->vma_vm_mm; if (!mmget_not_zero(mm)) goto err_mmget; if (!down_write_trylock(&mm->mmap_sem)) goto err_down_write_mmap_sem_failed; } vma = alloc->vma; list_lru_isolate(lru, item); spin_unlock(lock); Loading @@ -945,10 +944,9 @@ enum lru_status binder_alloc_free_page(struct list_head *item, PAGE_SIZE, NULL); trace_binder_unmap_user_end(alloc, index); } up_write(&mm->mmap_sem); mmput(mm); } trace_binder_unmap_kernel_start(alloc, index); Loading Loading
drivers/android/binder_alloc.c +8 −10 Original line number Diff line number Diff line Loading @@ -924,14 +924,13 @@ enum lru_status binder_alloc_free_page(struct list_head *item, index = page - alloc->pages; page_addr = (uintptr_t)alloc->buffer + index * PAGE_SIZE; vma = alloc->vma; if (vma) { if (!mmget_not_zero(alloc->vma_vm_mm)) goto err_mmget; mm = alloc->vma_vm_mm; if (!mmget_not_zero(mm)) goto err_mmget; if (!down_write_trylock(&mm->mmap_sem)) goto err_down_write_mmap_sem_failed; } vma = alloc->vma; list_lru_isolate(lru, item); spin_unlock(lock); Loading @@ -945,10 +944,9 @@ enum lru_status binder_alloc_free_page(struct list_head *item, PAGE_SIZE, NULL); trace_binder_unmap_user_end(alloc, index); } up_write(&mm->mmap_sem); mmput(mm); } trace_binder_unmap_kernel_start(alloc, index); Loading