diff options
| author | Todd Kjos <tkjos@google.com> | 2017-04-11 21:39:47 +0000 |
|---|---|---|
| committer | Todd Kjos <tkjos@google.com> | 2017-04-11 21:40:04 +0000 |
| commit | 84b6001987a05f1d16bc3939f8ebf1cf9bd672e2 (patch) | |
| tree | 8fd6270b41a7b4931f6d51a9ce969bbd9d0b77ed | |
| parent | 2295052f9de4d8288015e7d97ab0363a71604e64 (diff) | |
Revert "Revert "Revert "CHROMIUM: android: binder: Fix potential scheduling-while-atomic"""
This reverts commit 6a3b9c4984f9edc5a136720e42f1d2ab387857a4.
Sigh. Confusion reigns. The rest of the preempt_disable patch is not in common, so this shouldn't be here afterall (it is in several downstream branches that therefore need this one too).
Re-reverting. We don't want the preempt_disable stuff in common since fine-grained locking is coming soon.
Change-Id: I2595516cab28041fa72f4a38692266a0f2a01ab4
| -rw-r--r-- | drivers/android/binder.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/drivers/android/binder.c b/drivers/android/binder.c index 22025bcc38e9..9cf4f9bbc711 100644 --- a/drivers/android/binder.c +++ b/drivers/android/binder.c @@ -417,7 +417,6 @@ static int task_get_unused_fd_flags(struct binder_proc *proc, int flags) struct files_struct *files = proc->files; unsigned long rlim_cur; unsigned long irqs; - int ret; if (files == NULL) return -ESRCH; @@ -428,11 +427,7 @@ static int task_get_unused_fd_flags(struct binder_proc *proc, int flags) rlim_cur = task_rlimit(proc->tsk, RLIMIT_NOFILE); unlock_task_sighand(proc->tsk, &irqs); - preempt_enable_no_resched(); - ret = __alloc_fd(files, 0, rlim_cur, flags); - preempt_disable(); - - return ret; + return __alloc_fd(files, 0, rlim_cur, flags); } /* @@ -441,11 +436,8 @@ static int task_get_unused_fd_flags(struct binder_proc *proc, int flags) static void task_fd_install( struct binder_proc *proc, unsigned int fd, struct file *file) { - if (proc->files) { - preempt_enable_no_resched(); + if (proc->files) __fd_install(proc->files, fd, file); - preempt_disable(); - } } /* |
