Re: [PATCH] kmemleak: fix check for softirq context

Andrew Morton
2019-05-17T21:37:49Z

On Fri, 17 May 2019 19:15:07 +0200 Dmitry Vyukov <dvyukov@gmail.com> wrote:

> From: Dmitry Vyukov <dvyukov@google.com>
>
> in_softirq() is a wrong predicate to check if we are in a softirq context.
> It also returns true if we have BH disabled, so objects are falsely
> stamped with "softirq" comm. The correct predicate is in_serving_softirq().
>
> ...
>
> --- a/mm/kmemleak.c
> +++ b/mm/kmemleak.c
> @@ -588,7 +588,7 @@ static struct kmemleak_object *create_object(unsigned long ptr, size_t size,
> if (in_irq()) {
> object->pid = 0;
> strncpy(object->comm, "hardirq", sizeof(object->comm));
> - } else if (in_softirq()) {
> + } else if (in_serving_softirq()) {
> object->pid = 0;
> strncpy(object->comm, "softirq", sizeof(object->comm));
> } else {

What are the user-visible runtime effects of this change?