Skip to content
This repository was archived by the owner on Jan 10, 2023. It is now read-only.

Commit 08e9dbd

Browse files
Steven J. Hillgregkh
authored andcommitted
mm/vmstat.c: fix vmstat_update() preemption BUG
[ Upstream commit c7f26cc ] Attempting to hotplug CPUs with CONFIG_VM_EVENT_COUNTERS enabled can cause vmstat_update() to report a BUG due to preemption not being disabled around smp_processor_id(). Discovered on Ubiquiti EdgeRouter Pro with Cavium Octeon II processor. BUG: using smp_processor_id() in preemptible [00000000] code: kworker/1:1/269 caller is vmstat_update+0x50/0xa0 CPU: 0 PID: 269 Comm: kworker/1:1 Not tainted 4.16.0-rc4-Cavium-Octeon-00009-gf83bbd5-dirty #1 Workqueue: mm_percpu_wq vmstat_update Call Trace: show_stack+0x94/0x128 dump_stack+0xa4/0xe0 check_preemption_disabled+0x118/0x120 vmstat_update+0x50/0xa0 process_one_work+0x144/0x348 worker_thread+0x150/0x4b8 kthread+0x110/0x140 ret_from_kernel_thread+0x14/0x1c Link: http://lkml.kernel.org/r/1520881552-25659-1-git-send-email-steven.hill@cavium.com Signed-off-by: Steven J. Hill <steven.hill@cavium.com> Reviewed-by: Andrew Morton <akpm@linux-foundation.org> Cc: Tejun Heo <htejun@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent d2a5d00 commit 08e9dbd

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

mm/vmstat.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1770,9 +1770,11 @@ static void vmstat_update(struct work_struct *w)
17701770
* to occur in the future. Keep on running the
17711771
* update worker thread.
17721772
*/
1773+
preempt_disable();
17731774
queue_delayed_work_on(smp_processor_id(), mm_percpu_wq,
17741775
this_cpu_ptr(&vmstat_work),
17751776
round_jiffies_relative(sysctl_stat_interval));
1777+
preempt_enable();
17761778
}
17771779
}
17781780

0 commit comments

Comments
 (0)