diff --git a/kernel/sched/membarrier.c b/kernel/sched/membarrier.c
index c4ea07e85798566086666c0e4058a875fec0155b..ea888ddb914f626c3306f9f8c63ebe57b7091ae3 100644
--- a/kernel/sched/membarrier.c
+++ b/kernel/sched/membarrier.c
@@ -115,7 +115,7 @@ static int membarrier_global_expedited(void)
 		 * scheduling a kthread.
 		 */
 		p = task_rcu_dereference(&cpu_rq(cpu)->curr);
-		if (p->flags & PF_KTHREAD)
+		if (p && p->flags & PF_KTHREAD)
 			continue;
 
 		__cpumask_set_cpu(cpu, tmpmask);