Re: [PATCH 3/9] kmemleak: correctly check for kthreads

From: Catalin Marinas
Date: Wed Aug 14 2019 - 12:40:05 EST


On Wed, Aug 14, 2019 at 11:41:25AM +0100, Mark Rutland wrote:
> In general, a non-NULL current->mm doesn't imply that current is a
> kthread, as kthreads can install an mm via use_mm(), and so it's
> preferable to use is_kthread() to determine whether a thread is a
> kthread.
>
> For consistency, let's use is_kthread() here.
>
> Signed-off-by: Mark Rutland <mark.rutland@xxxxxxx>
> Cc: Catalin Marinas <catalin.marinas@xxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> ---
> mm/kmemleak.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)

Acked-by: Catalin Marinas <catalin.marinas@xxxxxxx>

> index 6e9e8cca663e..42ea3c14b577 100644
> --- a/mm/kmemleak.c
> +++ b/mm/kmemleak.c
> @@ -1290,10 +1290,10 @@ static int scan_should_stop(void)
> * This function may be called from either process or kthread context,
> * hence the need to check for both stop conditions.
> */
> - if (current->mm)
> - return signal_pending(current);
> - else
> + if (is_kthread(current))
> return kthread_should_stop();
> + else
> + return signal_pending(current);

While you are at it, you can drop the 'else' as well (occasionally
checkpatch complains about 'else' after return).

Thanks.

--
Catalin