memcg: replace in_interrupt() with !in_task()
authorShakeel Butt <shakeelb@google.com>
Tue, 22 Mar 2022 21:40:07 +0000 (14:40 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 22 Mar 2022 22:57:02 +0000 (15:57 -0700)
Replace the deprecated in_interrupt() with !in_task() because
in_interrupt() returns true for BH disabled even if the call happens in
the task context.  in_task() is the right interface to differentiate
task context from NMI, hard IRQ and softirq contexts.

Link: https://lkml.kernel.org/r/20220127162636.3461256-1-shakeelb@google.com
Signed-off-by: Shakeel Butt <shakeelb@google.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Vasily Averin <vvs@virtuozzo.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Roman Gushchin <roman.gushchin@linux.dev>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/memcontrol.c

index 36e9f38..209e668 100644 (file)
@@ -2688,7 +2688,7 @@ done_restock:
                        READ_ONCE(memcg->swap.high);
 
                /* Don't bother a random interrupted task */
-               if (in_interrupt()) {
+               if (!in_task()) {
                        if (mem_high) {
                                schedule_work(&memcg->high_work);
                                break;
@@ -6968,7 +6968,7 @@ void mem_cgroup_sk_alloc(struct sock *sk)
                return;
 
        /* Do not associate the sock with unrelated interrupted task's memcg. */
-       if (in_interrupt())
+       if (!in_task())
                return;
 
        rcu_read_lock();