Revert "Revert "CHROMIUM: android: binder: Fix potential scheduling-while-atomic""

This reverts commit 13c17d0179.

Change-Id: I8c3a7eefb72b85c0dd05996c2705636fcbc871f7
This commit is contained in:
Todd Kjos 2017-04-10 18:35:25 +00:00
parent c71ad0f6b3
commit 6a3b9c4984

View file

@ -417,6 +417,7 @@ 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;
@ -427,7 +428,11 @@ 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);
return __alloc_fd(files, 0, rlim_cur, flags);
preempt_enable_no_resched();
ret = __alloc_fd(files, 0, rlim_cur, flags);
preempt_disable();
return ret;
}
/*
@ -436,8 +441,11 @@ 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)
if (proc->files) {
preempt_enable_no_resched();
__fd_install(proc->files, fd, file);
preempt_disable();
}
}
/*