diff --git a/net/core/dev.c b/net/core/dev.c
index 360cb2f1b1e9ff13951d8043f6e11f2e4e041285..5af0ba1ed473265ab3a084210e844721d421eafc 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -5797,7 +5797,7 @@ static void flush_all_backlogs(void)
 	 */
 	ASSERT_RTNL();
 
-	get_online_cpus();
+	cpus_read_lock();
 
 	cpumask_clear(&flush_cpus);
 	for_each_online_cpu(cpu) {
@@ -5815,7 +5815,7 @@ static void flush_all_backlogs(void)
 	for_each_cpu(cpu, &flush_cpus)
 		flush_work(per_cpu_ptr(&flush_works, cpu));
 
-	put_online_cpus();
+	cpus_read_unlock();
 }
 
 /* Pass the currently batched GRO_NORMAL SKBs up to the stack. */