android,lowmemorykiller: Don't abuse TIF_MEMDIE.
Tetsuo Handa
penguin-kernel at I-love.SAKURA.ne.jp
Wed Apr 6 21:49:58 UTC 2016
Dan Carpenter wrote:
> Hello Tetsuo Handa,
Hello, Dan.
>
> This is a semi-automatic email about new static checker warnings.
>
> The patch 77ed2c5745d9: "android,lowmemorykiller: Don't abuse
> TIF_MEMDIE." from Mar 8, 2016, leads to the following Smatch
> complaint:
>
> drivers/staging/android/lowmemorykiller.c:145 lowmem_scan()
> error: we previously assumed 'p->mm' could be null (see line 134)
This is a false positive. find_lock_task_mm() returns a task_struct
whose mm is not NULL (with alloc_lock spinlock held).
>
> drivers/staging/android/lowmemorykiller.c
> 133
> 134 if (task_lmk_waiting(p) && p->mm &&
> ^^^^^
> Patch adds a new check.
>
> 135 time_before_eq(jiffies, lowmem_deathpending_timeout)) {
> 136 task_unlock(p);
> 137 rcu_read_unlock();
> 138 return 0;
> 139 }
> 140 oom_score_adj = p->signal->oom_score_adj;
> 141 if (oom_score_adj < min_score_adj) {
> 142 task_unlock(p);
> 143 continue;
> 144 }
> 145 tasksize = get_mm_rss(p->mm);
> ^^^^^
> Old unchecked dereference inside function call.
At this point alloc_lock spinlock is still held.
Thus, this mm is not NULL.
>
> 146 task_unlock(p);
> 147 if (tasksize <= 0)
>
> regards,
> dan carpenter
>
Thanks.
More information about the devel
mailing list