summaryrefslogtreecommitdiff
path: root/kernel/sched/ext.c
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2025-09-05 17:09:18 +0100
committerMark Brown <broonie@kernel.org>2025-09-05 17:09:18 +0100
commit92b9c2b7a88c07324d70ea877cfe2d90ac823dbf (patch)
treec5c6df6a87eb3df891ce33191b80fe3aefac5add /kernel/sched/ext.c
parent9d35d068fb138160709e04e3ee97fe29a6f8615b (diff)
parentb497e1a1a2b10c4ddb28064fba229365ae03311a (diff)
regulator: pf530x: NXP PF530x regulator driver
Merge series from Woodrow Douglass <wdouglass@carnegierobotics.com>: I wrote this driver to read settings and state from the nxp pf530x regulator. Please consider it for inclusion, any criticism is welcome.
Diffstat (limited to 'kernel/sched/ext.c')
-rw-r--r--kernel/sched/ext.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c
index 7dedc9a16281..4ae32ef179dd 100644
--- a/kernel/sched/ext.c
+++ b/kernel/sched/ext.c
@@ -5749,6 +5749,9 @@ static int scx_enable(struct sched_ext_ops *ops, struct bpf_link *link)
__setscheduler_class(p->policy, p->prio);
struct sched_enq_and_set_ctx ctx;
+ if (!tryget_task_struct(p))
+ continue;
+
if (old_class != new_class && p->se.sched_delayed)
dequeue_task(task_rq(p), p, DEQUEUE_SLEEP | DEQUEUE_DELAYED);
@@ -5761,6 +5764,7 @@ static int scx_enable(struct sched_ext_ops *ops, struct bpf_link *link)
sched_enq_and_set_task(&ctx);
check_class_changed(task_rq(p), p, old_class, p->prio);
+ put_task_struct(p);
}
scx_task_iter_stop(&sti);
percpu_up_write(&scx_fork_rwsem);