aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHong-Mei Li <a21834@motorola.com>2015-03-27 14:15:25 -0700
committerSimon Shields <keepcalm444@gmail.com>2016-06-13 14:47:41 +1000
commitf8be24cb48429f5d532876b57d5083dd4e178159 (patch)
treef4bb711597fd511356cf96b9edd0b53a63d0819d
parentca7c9fad094f4413dcb2ce65d6d4983201295536 (diff)
downloadkernel_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.c2
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) {