diff options
| author | Tejun Heo <tj@kernel.org> | 2026-05-12 02:18:23 +0300 |
|---|---|---|
| committer | Tejun Heo <tj@kernel.org> | 2026-05-13 00:28:56 +0300 |
| commit | cceb874eee46fe4b3d3c6c496f19125d9a3a9a8f (patch) | |
| tree | 0e95ed7f1013afcc60734dd84ceac95ca84c8b6a /tools/lib/python/kdoc/kdoc_parser.py | |
| parent | b273b75b8d677aea06dd06d80b61b3bb06e94680 (diff) | |
| download | linux-cceb874eee46fe4b3d3c6c496f19125d9a3a9a8f.tar.xz | |
sched_ext: Defer sub_kset base put to scx_sched_free_rcu_work
scx_sub_enable_workfn() pins parent->kobj before dropping scx_sched_lock,
but that does not pin parent->sub_kset. Concurrent disable can
kset_unregister and free sub_kset before scx_alloc_and_add_sched()
dereferences it.
Split sub_kset teardown: kobject_del() at disable keeps sysfs removal; defer
kobject_put() to scx_sched_free_rcu_work so the memory survives. A racing
child sees state_in_sysfs=0 with valid memory, sysfs_create_dir() fails, and
the existing exit_kind gate in scx_link_sched() turns it away with -ENOENT.
Fixes: 411d3ef1a705 ("sched_ext: Unregister sub_kset on scheduler disable")
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'tools/lib/python/kdoc/kdoc_parser.py')
0 files changed, 0 insertions, 0 deletions
