Ubuntu-focal-kernel/kernel
Pietro Borrello 094ea14cf2 sched/rt: pick_next_rt_entity(): check list_entry
BugLink: https://bugs.launchpad.net/bugs/2017706

[ Upstream commit 7c4a5b89a0b5a57a64b601775b296abf77a9fe97 ]

Commit 326587b840 ("sched: fix goto retry in pick_next_task_rt()")
removed any path which could make pick_next_rt_entity() return NULL.
However, BUG_ON(!rt_se) in _pick_next_task_rt() (the only caller of
pick_next_rt_entity()) still checks the error condition, which can
never happen, since list_entry() never returns NULL.
Remove the BUG_ON check, and instead emit a warning in the only
possible error condition here: the queue being empty which should
never happen.

Fixes: 326587b840 ("sched: fix goto retry in pick_next_task_rt()")
Signed-off-by: Pietro Borrello <borrello@diag.uniroma1.it>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Phil Auld <pauld@redhat.com>
Reviewed-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Link: https://lore.kernel.org/r/20230128-list-entry-null-check-sched-v3-1-b1a71bd1ac6b@diag.uniroma1.it
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Luke Nowakowski-Krijger <luke.nowakowskikrijger@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
2023-05-12 17:14:59 +02:00
..
bpf bpf: add missing header file include 2023-04-18 17:21:06 +02:00
cgroup memcg: fix possible use-after-free in memcg_write_event_control() 2023-02-01 15:21:53 +01:00
configs
debug UBUNTU: SAUCE: debug: Lock down kgdb 2022-05-21 11:27:20 -03:00
dma dma-debug: make things less spammy under memory pressure 2022-08-26 11:10:39 +02:00
events perf: Fix possible memleak in pmu_dev_alloc() 2023-02-01 15:22:13 +01:00
gcov gcov: add support for checksum field 2023-02-01 15:23:18 +01:00
irq genirq/irqdesc: Don't try to remove non-existing sysfs files 2023-02-01 15:22:15 +01:00
livepatch livepatch: fix race between fork and KLP transition 2023-01-06 08:43:53 -08:00
locking locking/lockdep: Avoid RCU-induced noinstr fail 2022-01-13 18:42:05 +01:00
power PM: hibernate: Fix mistake in kerneldoc comment 2023-02-01 15:22:13 +01:00
printk printk: fix return value of printk.devkmsg __setup handler 2022-05-20 15:18:43 +02:00
rcu rcu: Fix __this_cpu_read() lockdep warning in rcu_force_quiescent_state() 2023-02-01 15:23:09 +01:00
sched sched/rt: pick_next_rt_entity(): check list_entry 2023-05-12 17:14:59 +02:00
time alarmtimer: Prevent starvation by small intervals and SIG_IGN 2023-04-18 17:21:05 +02:00
trace tracing: Fix poll() and select() do not work on per_cpu trace_pipe and trace_pipe_raw 2023-04-18 17:21:01 +02:00
.gitignore kbuild: update config_data.gz only when the content of .config is changed 2021-05-19 10:59:49 +02:00
Kconfig.freezer
Kconfig.hz
Kconfig.locks
Kconfig.preempt
Makefile kbuild: update config_data.gz only when the content of .config is changed 2021-05-19 10:59:49 +02:00
acct.c acct: fix potential integer overflow in encode_comp_t() 2023-02-01 15:23:09 +01:00
async.c Revert "module, async: async_synchronize_full() on module init iff async is used" 2022-04-14 11:32:16 +02:00
audit.c audit: improve audit queue handling when "audit=1" on cmdline 2022-03-29 09:13:56 +02:00
audit.h audit: log AUDIT_TIME_* records only from rules 2022-05-20 15:18:33 +02:00
audit_fsnotify.c audit: fix potential double free on error path from fsnotify_add_inode_mark 2022-10-17 15:02:07 +02:00
audit_tree.c audit: move put_tree() to avoid trim_trees refcount underflow and UAF 2021-10-01 11:31:10 +02:00
audit_watch.c
auditfilter.c
auditsc.c audit: log AUDIT_TIME_* records only from rules 2022-05-20 15:18:33 +02:00
backtracetest.c
bounds.c
capability.c
compat.c
configs.c
context_tracking.c
cpu.c random: clear fast pool, crng, and batches in cpuhp bring up 2022-08-26 11:10:11 +02:00
cpu_pm.c
crash_core.c
crash_dump.c
cred.c
delayacct.c
dma.c
exec_domain.c
exit.c exit: Use READ_ONCE() for all oops/warn limit reads 2023-03-21 10:09:02 +01:00
extable.c
fail_function.c
fork.c copy_process(): Move fd_install() out of sighand->siglock critical section 2022-04-14 11:32:25 +02:00
freezer.c
futex.c mm, futex: fix shared futex pgoff on shmem huge page 2021-08-13 09:44:31 +02:00
gen_kheaders.sh
groups.c
hung_task.c
iomem.c
irq_work.c
jump_label.c jump_label: Fix usage in module __init 2021-11-25 12:09:02 +01:00
kallsyms.c
kcmp.c
kcov.c
kexec.c
kexec_core.c
kexec_elf.c
kexec_file.c kexec_file: drop weak attribute from arch_kexec_apply_relocations[_add] 2022-08-26 11:11:25 +02:00
kexec_internal.h
kheaders.c
kmod.c
kprobes.c kprobes: Skip clearing aggrprobe's post_handler in kprobe-on-ftrace case 2023-02-01 15:21:17 +01:00
ksysfs.c
kthread.c kthread: Fix PF_KTHREAD vs to_kthread() race 2021-10-01 11:33:59 +02:00
latencytop.c
module-internal.h
module.c module: Don't wait for GOING modules 2023-03-21 10:08:59 +01:00
module_signature.c module: harden ELF info handling 2021-04-23 11:58:31 +02:00
module_signing.c module: harden ELF info handling 2021-04-23 11:58:31 +02:00
notifier.c
nsproxy.c
padata.c
panic.c exit: Use READ_ONCE() for all oops/warn limit reads 2023-03-21 10:09:02 +01:00
params.c
pid.c
pid_namespace.c memcg: enable accounting for pids in nested pid namespaces 2021-10-12 16:31:40 -06:00
profile.c profiling: fix shift too large makes kernel panic 2022-10-17 15:01:11 +02:00
ptrace.c ptrace: Reimplement PTRACE_KILL by always sending SIGKILL 2022-08-26 11:07:09 +02:00
range.c
reboot.c Revert "PM: ACPI: reboot: Use S5 for reboot" 2022-04-14 11:32:31 +02:00
relay.c relay: fix type mismatch when allocating memory in relay_create_buf() 2023-02-01 15:22:18 +01:00
resource.c
rseq.c
seccomp.c seccomp: Invalidate seccomp mode to catch death failures 2022-04-14 11:32:10 +02:00
signal.c signal handling: don't use BUG_ON() for debugging 2022-09-16 10:59:30 +02:00
smp.c smp: Fix offline cpu check in flush_smp_call_function_queue() 2022-06-22 14:50:41 +02:00
smpboot.c
smpboot.h
softirq.c
stackleak.c
stacktrace.c
stop_machine.c
sys.c prlimit: do_prlimit needs to have a speculation check 2023-03-21 10:08:55 +01:00
sys_ni.c kernel/sys_ni: add compat entry for fadvise64_64 2022-10-17 15:02:07 +02:00
sysctl-test.c
sysctl.c proc: proc_skip_spaces() shouldn't think it is working on C strings 2023-02-01 15:21:48 +01:00
sysctl_binary.c
task_work.c
taskstats.c
test_kprobes.c
torture.c
tracepoint.c tracepoint: Add tracepoint_probe_register_may_exist() for BPF tracing 2021-08-13 09:44:55 +02:00
tsacct.c taskstats: Cleanup the use of task->exit_code 2022-04-14 11:32:19 +02:00
ucount.c
uid16.c
uid16.h
umh.c
up.c smp: Fix smp_call_function_single_async prototype 2021-05-26 15:39:25 +02:00
user-return-notifier.c
user.c
user_namespace.c
utsname.c
utsname_sysctl.c
watchdog.c watchdog: export lockup_detector_reconfigure 2022-10-17 15:02:02 +02:00
watchdog_hld.c
workqueue.c workqueue: don't skip lockdep work dependency in cancel_work_sync() 2022-11-24 10:28:53 +01:00
workqueue_internal.h