aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorHong-Mei Li <a21834@motorola.com>2015-03-20 18:05:10 -0700
committerMister Oyster <oysterized@gmail.com>2017-04-17 11:51:36 +0200
commit5b6c8937233e2945a5fe70152ace3b7e0a8d804b (patch)
tree750a861ee25f9b0da05dd1e355ae9a9f0c8b1732 /kernel
parentbcc91adb7f16e2a24a5a4c676b03e9c061c0f539 (diff)
drivers:lmk: Fix double delete issue
someone may change a process's oom_score_adj by proc fs, even though the process has exited. In that case, the task was deleted from the rb tree already, and the redundant deleting would trigger rb_erase panic finally. In this patch, we make sure to clear the node after deteting and check its empty status before rb_erase. Change-Id: I26098ca3350f111e94567f9e65ec3dce413197aa Signed-off-by: Hong-Mei Li <a21834@motorola.com> Reviewed-on: http://gerrit.mot.com/727760 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver <sltawvr@motorola.com> Tested-by: Jira Key <jirakey@motorola.com> Reviewed-by: Sheng-Zhe Zhao <a18689@motorola.com> Submit-Approved: Jira Key <jirakey@motorola.com>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/fork.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/fork.c b/kernel/fork.c
index 06b92b187..655a77cde 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -368,6 +368,9 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
account_kernel_stack(ti, 1);
+#ifdef CONFIG_ANDROID_LMK_ADJ_RBTREE
+ RB_CLEAR_NODE(&tsk->adj_node);
+#endif
return tsk;
free_ti: