diff options
author | Hong-Mei Li <a21834@motorola.com> | 2015-03-27 14:15:25 -0700 |
---|---|---|
committer | Simon Shields <keepcalm444@gmail.com> | 2016-06-13 14:47:41 +1000 |
commit | f8be24cb48429f5d532876b57d5083dd4e178159 (patch) | |
tree | f4bb711597fd511356cf96b9edd0b53a63d0819d | |
parent | ca7c9fad094f4413dcb2ce65d6d4983201295536 (diff) | |
download | kernel_samsung_smdk4412-f8be24cb48429f5d532876b57d5083dd4e178159.zip kernel_samsung_smdk4412-f8be24cb48429f5d532876b57d5083dd4e178159.tar.gz kernel_samsung_smdk4412-f8be24cb48429f5d532876b57d5083dd4e178159.tar.bz2 |
drivers:lmk: Fix null pointer issue
On some race, the tsk that lmk is using may be deleted from the RB tree
by other thread, and rb_next would return a NULL if we use this tsk to
get next. For this case, we need to skip this round of shrink and wait
for the next turn. Otherwise, tsk would trigger NULL pointer panic.
Change-Id: I37f4bd2827f8a0a28f29192dd71532d1c252f986
Signed-off-by: Hong-Mei Li <a21834@motorola.com>
Reviewed-on: http://gerrit.mot.com/729556
SLTApproved: Slta Waiver <sltawvr@motorola.com>
SME-Granted: SME Approvals Granted
Tested-by: Jira Key <jirakey@motorola.com>
Reviewed-by: Yi-Wei Zhao <gbjc64@motorola.com>
Submit-Approved: Jira Key <jirakey@motorola.com>
-rw-r--r-- | drivers/staging/android/lowmemorykiller.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/staging/android/lowmemorykiller.c b/drivers/staging/android/lowmemorykiller.c index 239d32d..c6ee61c 100644 --- a/drivers/staging/android/lowmemorykiller.c +++ b/drivers/staging/android/lowmemorykiller.c @@ -193,7 +193,7 @@ static int lowmem_shrink(struct shrinker *s, struct shrink_control *sc) #ifdef CONFIG_ANDROID_LMK_ADJ_RBTREE for (tsk = pick_first_task(); - tsk != pick_last_task(); + tsk != pick_last_task() && tsk != NULL; tsk = pick_next_from_adj_tree(tsk)) { #else for_each_process(tsk) { |