On 07/02/25 11:34 am, Liu Ye wrote:
The condition in WARN_ON_ONCE(cpu_online(cpu)) should be !cpu_online(cpu)
to ensure the warning is triggered when the CPU is offline.
Signed-off-by: Liu Ye <liuye@xxxxxxxxxx>
---
mm/mlock.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mm/mlock.c b/mm/mlock.c
index cde076fa7d5e..40acf7897917 100644
--- a/mm/mlock.c
+++ b/mm/mlock.c
@@ -224,7 +224,7 @@ void mlock_drain_remote(int cpu)
{
struct folio_batch *fbatch;
- WARN_ON_ONCE(cpu_online(cpu));
+ WARN_ON_ONCE(!cpu_online(cpu));
fbatch = &per_cpu(mlock_fbatch.fbatch, cpu);
if (folio_batch_count(fbatch))
mlock_folio_batch(fbatch);
No idea about this code path but mlock_drain_remote() is called by
page_alloc_cpu_dead() which expects an offlined CPU according to the
comments.