summaryrefslogtreecommitdiffstats
path: root/drivers/android
diff options
context:
space:
mode:
authorTodd Kjos <tkjos@android.com>2017-07-05 16:46:01 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-07-17 08:44:19 -0400
commita2b18708ee14baec4ef9c0fba96070bba14d0081 (patch)
tree7dc7480befed459daefbaba05ddc05df8e8fe459 /drivers/android
parent5771a8c08880cdca3bfb4a3fc6d309d6bba20877 (diff)
Revert "android: binder: Sanity check at binder ioctl"
This reverts commit a906d6931f3ccaf7de805643190765ddd7378e27. The patch introduced a race in the binder driver. An attempt to fix the race was submitted in "[PATCH v2] android: binder: fix dangling pointer comparison", however the conclusion in the discussion for that patch was that the original patch should be reverted. The reversion is being done as part of the fine-grained locking patchset since the patch would need to be refactored when proc->vmm_vm_mm is removed from struct binder_proc and added in the binder allocator. Signed-off-by: Todd Kjos <tkjos@google.com> Cc: stable <stable@vger.kernel.org> # 4.6+ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/android')
-rw-r--r--drivers/android/binder.c5
1 files changed, 0 insertions, 5 deletions
diff --git a/drivers/android/binder.c b/drivers/android/binder.c
index aae4d8d4be36..157bd3e49ff4 100644
--- a/drivers/android/binder.c
+++ b/drivers/android/binder.c
@@ -3247,10 +3247,6 @@ static long binder_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
3247 /*pr_info("binder_ioctl: %d:%d %x %lx\n", 3247 /*pr_info("binder_ioctl: %d:%d %x %lx\n",
3248 proc->pid, current->pid, cmd, arg);*/ 3248 proc->pid, current->pid, cmd, arg);*/
3249 3249
3250 if (unlikely(current->mm != proc->vma_vm_mm)) {
3251 pr_err("current mm mismatch proc mm\n");
3252 return -EINVAL;
3253 }
3254 trace_binder_ioctl(cmd, arg); 3250 trace_binder_ioctl(cmd, arg);
3255 3251
3256 ret = wait_event_interruptible(binder_user_error_wait, binder_stop_on_user_error < 2); 3252 ret = wait_event_interruptible(binder_user_error_wait, binder_stop_on_user_error < 2);
@@ -3466,7 +3462,6 @@ static int binder_open(struct inode *nodp, struct file *filp)
3466 return -ENOMEM; 3462 return -ENOMEM;
3467 get_task_struct(current); 3463 get_task_struct(current);
3468 proc->tsk = current; 3464 proc->tsk = current;
3469 proc->vma_vm_mm = current->mm;
3470 INIT_LIST_HEAD(&proc->todo); 3465 INIT_LIST_HEAD(&proc->todo);
3471 init_waitqueue_head(&proc->wait); 3466 init_waitqueue_head(&proc->wait);
3472 proc->default_priority = task_nice(current); 3467 proc->default_priority = task_nice(current);