On Fri, 17 May 2019 19:15:07 +0200 Dmitry Vyukov <dvyukov@xxxxxxxxx> wrote: > From: Dmitry Vyukov <dvyukov@xxxxxxxxxx> > > 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?