[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20241222154316.67077-2-henry.hj@antgroup.com>
Date: Sun, 22 Dec 2024 23:43:16 +0800
From: "Henry Huang" <henry.hj@...group.com>
To: tj@...nel.org,
void@...ifault.com
Cc: "谈鉴锋" <henry.tjf@...group.com>,
"Yan Yan(cailing)" <yanyan.yan@...group.com>,
<linux-kernel@...r.kernel.org>,
"Henry Huang" <henry.hj@...group.com>
Subject: [PATCH v1] sched_ext: initialize kit->cursor.flags
struct bpf_iter_scx_dsq *it maybe not initialized.
If we didn't call scx_bpf_dsq_move_set_vtime and scx_bpf_dsq_move_set_slice
before scx_bpf_dsq_move, it would cause unexpected behaviors:
1. Assign a huge slice into p->scx.slice
2. Assign a invalid vtime into p->scx.dsq_vtime
Signed-off-by: Henry Huang <henry.hj@...group.com>
---
kernel/sched/ext.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c
index 7fff1d0..81da76a 100644
--- a/kernel/sched/ext.c
+++ b/kernel/sched/ext.c
@@ -7013,7 +7013,7 @@ __bpf_kfunc int bpf_iter_scx_dsq_new(struct bpf_iter_scx_dsq *it, u64 dsq_id,
return -ENOENT;
INIT_LIST_HEAD(&kit->cursor.node);
- kit->cursor.flags |= SCX_DSQ_LNODE_ITER_CURSOR | flags;
+ kit->cursor.flags = SCX_DSQ_LNODE_ITER_CURSOR | flags;
kit->cursor.priv = READ_ONCE(kit->dsq->seq);
return 0;
--
1.8.3.1
Powered by blists - more mailing lists