If the function is called with tsk1 == tsk2, we know for sure that their mems_allowed nodes do intersect, and so we can return immediately instead of checking the nodes content. Signed-off-by: Yury Norov <yury.norov@xxxxxxxxx> --- kernel/cgroup/cpuset.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c index 4237c8748715..47ed206d4890 100644 --- a/kernel/cgroup/cpuset.c +++ b/kernel/cgroup/cpuset.c @@ -5010,6 +5010,9 @@ EXPORT_SYMBOL_GPL(cpuset_mem_spread_node); int cpuset_mems_allowed_intersects(const struct task_struct *tsk1, const struct task_struct *tsk2) { + if (tsk1 == tsk2) + return 1; + return nodes_intersects(tsk1->mems_allowed, tsk2->mems_allowed); } -- 2.40.1