Centos-kernel-stream-9/kernel
Andrew Halaney 292a64606b kernel/panic: Drop unblank_screen call
JIRA: https://issues.redhat.com/browse/RHEL-24205

commit 0a64ce6e5442bbd96cbe9057d9ba1edab244f25b
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Tue Aug 30 16:50:04 2022 +0200

    kernel/panic: Drop unblank_screen call

    console_unblank() does this too (called in both places right after),
    and with a lot more confidence inspiring approach to locking.

    Reconstructing this story is very strange:

    In b61312d353 ("oops handling: ensure that any oops is flushed to
    the mtdoops console") it is claimed that a printk(" "); flushed out
    the console buffer, which was removed in e3e8a75d2a ("[PATCH]
    Extract and use wake_up_klogd()"). In todays kernels this is done way
    earlier in console_flush_on_panic with some really nasty tricks. I
    didn't bother to fully reconstruct this all, least because the call to
    bust_spinlock(0); gets moved every few years, depending upon how the
    wind blows (or well, who screamed loudest about the various issue each
    call site caused).

    Before that commit the only calls to console_unblank() where in s390
    arch code.

    The other side here is the console->unblank callback, which was
    introduced in 2.1.31 for the vt driver. Which predates the
    console_unblank() function by a lot, which was added (without users)
    in 2.4.14.3. So pretty much impossible to guess at any motivation
    here. Also afaict the vt driver is the only (and always was the only)
    console driver implementing the unblank callback, so no idea why a
    call to console_unblank() was added for the mtdooops driver - the
    action actually flushing out the console buffers is done from
    console_unlock() only.

    Note that as prep for the s390 users the locking was adjusted in
    2.5.22 (I couldn't figure out how to properly reference the BK commit
    from the historical git trees) from a normal semaphore to a trylock.

    Note that a copy of the direct unblank_screen() call was added to
    panic() in c7c3f05e34 ("panic: avoid deadlocks in re-entrant console
    drivers"), which partially inlined the bust_spinlocks(0); call.

    Long story short, I have no idea why the direct call to unblank_screen
    survived for so long (the infrastructure to do it properly existed for
    years), nor why it wasn't removed when the console_unblank() call was
    finally added. But it makes a ton more sense to finally do that than
    not - it's just better encapsulation to go through the console
    functions instead of doing a direct call, so let's dare. Plus it
    really does not make much sense to call the only unblank
    implementation there is twice, once without, and once with appropriate
    locking.

    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Jiri Slaby <jirislaby@kernel.org>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
    Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Cc: Xuezhi Zhang <zhangxuezhi1@coolpad.com>
    Cc: Yangxi Xiang <xyangxi5@gmail.com>
    Cc: nick black <dankamongmen@gmail.com>
    Cc: Petr Mladek <pmladek@suse.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Luis Chamberlain <mcgrof@kernel.org>
    Cc: "Guilherme G. Piccoli" <gpiccoli@igalia.com>
    Cc: Marco Elver <elver@google.com>
    Cc: John Ogness <john.ogness@linutronix.de>
    Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Cc: David Gow <davidgow@google.com>
    Cc: tangmeng <tangmeng@uniontech.com>
    Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: Petr Mladek <pmladek@suse.com>
    Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Link: https://lore.kernel.org/r/20220830145004.430545-1-daniel.vetter@ffwll.ch
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Signed-off-by: Andrew Halaney <ahalaney@redhat.com>
2024-05-09 11:25:06 -04:00
..
bpf Merge: CNB95: bpf: expose information about netdev xdp-metadata kfunc support 2024-05-08 20:17:31 +00:00
cgroup Merge: Scheduler: rhel9.5 updates 2024-05-08 20:13:47 +00:00
configs mm, slob: rename CONFIG_SLOB to CONFIG_SLOB_DEPRECATED 2024-04-09 09:42:54 -04:00
debug mm: remove vmacache 2024-04-01 11:19:46 -04:00
dma Reapply "dma-mapping: reject __GFP_COMP in dma_alloc_attrs" 2024-02-19 10:00:36 -08:00
entry entry: kmsan: introduce kmsan_unpoison_entry_regs() 2023-10-20 06:14:42 -04:00
events Merge: perf: Sync with upstream v6.8 2024-04-24 19:39:17 +00:00
futex futex: Prevent the reuse of stale pi_state 2024-03-27 10:12:24 -04:00
gcov
irq genirq, softirq: Use in_hardirq() instead of in_irq() 2024-04-05 09:49:13 -04:00
kcsan panic: Consolidate open-coded panic_on_warn checks 2024-04-09 09:43:00 -04:00
livepatch Merge: livepatch: selected fixes for rhel-9.4 2023-11-13 10:15:36 +01:00
locking locking/rtmutex: Add a lockdep assert to catch potential nested blocking 2024-03-27 10:06:01 -04:00
power power: port block device access to file 2024-04-17 10:18:36 +08:00
printk Revert "printk: Bring back the RT bits." 2024-05-09 11:24:08 -04:00
rcu Revert "printk: Bring back the RT bits." 2024-05-09 11:24:08 -04:00
sched Merge: Scheduler: rhel9.5 updates 2024-05-08 20:13:47 +00:00
time vdso/timens: Refactor copy-pasted find_timens_vvar_page() helper into one copy 2024-03-20 09:42:49 -04:00
trace Merge: block: open block device as file 2024-04-29 14:05:40 +00:00
.gitignore
Kconfig.freezer
Kconfig.hz
Kconfig.locks
Kconfig.preempt
Makefile kernel: add platform_has() infrastructure 2024-03-20 09:42:37 -04:00
acct.c acct: use VMA iterator instead of linked list 2024-04-01 11:19:51 -04:00
async.c
audit.c audit: move trailing statements to next line 2023-12-08 13:36:23 -03:00
audit.h audit: correct audit_filter_inodes() definition 2023-12-08 13:36:03 -03:00
audit_fsnotify.c
audit_tree.c
audit_watch.c audit: don't WARN_ON_ONCE(!current->mm) in audit_exe_compare() 2023-11-21 10:44:01 +01:00
auditfilter.c audit: move trailing statements to next line 2023-12-08 13:36:23 -03:00
auditsc.c netfilter: nf_tables: Audit log rule reset 2023-12-08 13:39:15 -03:00
backtracetest.c
bounds.c mm: multi-gen LRU: minimal implementation 2023-10-20 06:13:45 -04:00
capability.c
cfi.c
compat.c sched_getaffinity: don't assume 'cpumask_size()' is fully initialized 2023-09-07 14:26:06 -04:00
configs.c
context_tracking.c
cpu.c cpu/hotplug: Remove dependancy against cpu_primary_thread_mask 2024-02-06 10:17:15 -05:00
cpu_pm.c
crash_core.c mm, treewide: redefine MAX_ORDER sanely 2023-10-30 09:12:37 +01:00
crash_dump.c
cred.c
delayacct.c delayacct: support re-entrance detection of thrashing accounting 2023-06-14 15:11:00 -06:00
dma.c
exec_domain.c
exit.c kernel: exit: cleanup release_thread() 2024-03-20 09:42:40 -04:00
extable.c sections: move and rename core_kernel_data() to is_kernel_core_data() 2024-03-20 09:43:21 -04:00
fail_function.c
fork.c mm: remove the vma linked list 2024-04-01 11:19:57 -04:00
freezer.c
gen_kheaders.sh
groups.c
hung_task.c Revert "printk: Bring back the RT bits." 2024-05-09 11:24:08 -04:00
iomem.c
irq_work.c trace: Add trace_ipi_send_cpu() 2023-09-14 15:36:30 +02:00
jump_label.c jump_label: make initial NOP patching the special case 2024-03-20 09:43:04 -04:00
kallsyms.c
kallsyms_internal.h
kcmp.c
kcov.c kcov: kmsan: unpoison area->list in kcov_remote_area_put() 2023-10-20 06:14:40 -04:00
kexec.c
kexec_core.c kexec_file: add kexec_file flag to control debug printing 2024-04-28 21:52:02 +08:00
kexec_elf.c
kexec_file.c kexec_file: print out debugging message if required 2024-04-28 21:54:52 +08:00
kexec_internal.h
kheaders.c
kmod.c
kprobes.c x86/kprobes: Fix arch_check_optimized_kprobe check within optimized_kprobe range 2024-03-20 09:42:59 -04:00
ksysfs.c
kthread.c sched/wait: Fix a kthread_park race with wait_woken() 2023-09-07 14:30:59 -04:00
latencytop.c
module-internal.h
module.c Merge: treewide: Implement new Red Hat driver and device status infrastructure 2023-11-29 14:08:05 -05:00
module_signature.c
module_signing.c
notifier.c notifier: Add atomic_notifier_call_chain_is_empty() 2024-03-20 09:42:36 -04:00
nsproxy.c Revert "fs/exec: allow to unshare a time namespace on vfork+exec" 2023-10-20 06:13:08 -04:00
padata.c padata: Fix refcnt handling in padata_free_shell() 2023-12-06 16:23:46 -03:00
panic.c kernel/panic: Drop unblank_screen call 2024-05-09 11:25:06 -04:00
params.c kobject: kset_uevent_ops: make filter() callback take a const * 2023-10-23 10:35:56 -05:00
pid.c
pid_namespace.c rcu-tasks: Fix synchronize_rcu_tasks() VS zap_pid_ns_processes() 2023-09-22 13:21:34 -04:00
platform-feature.c kernel: add platform_has() infrastructure 2024-03-20 09:42:37 -04:00
profile.c profile: setup_profiling_timer() is moslty not implemented 2024-03-20 09:42:39 -04:00
ptrace.c ptrace: fix clearing of JOBCTL_TRACED in ptrace_unfreeze_traced() 2023-07-06 15:55:32 +02:00
range.c
reboot.c Revert "printk: Bring back the RT bits." 2024-05-09 11:24:08 -04:00
regset.c
relay.c relayfs: fix out-of-bounds access in relay_file_read 2023-07-10 12:16:49 -05:00
resource.c
resource_kunit.c
rh_messages.c kernel/rh_messages.c: Mark functions as possibly unused 2023-11-09 19:58:08 -05:00
rh_messages.h Deprecate qla4xxx in RHEL-9 2024-03-06 14:06:57 -08:00
rh_shadowman.c
rseq.c
scftorture.c
scs.c
seccomp.c
signal.c signal: Add proper comment about the preempt-disable in ptrace_stop(). 2023-11-06 12:29:40 +01:00
smp.c smp: don't declare nr_cpu_ids if NR_CPUS == 1 2024-03-20 09:42:41 -04:00
smpboot.c cpu/hotplug: Remove unused state functions 2024-02-06 10:17:13 -05:00
smpboot.h
softirq.c sched/core: introduce sched_core_idle_cpu() 2024-04-05 09:49:13 -04:00
stackleak.c
stacktrace.c
static_call.c static_call: Don't make __static_call_return0 static 2023-06-30 19:59:53 -04:00
static_call_inline.c static_call: Add call depth tracking support 2023-06-30 20:31:53 -04:00
stop_machine.c
sys.c
sys_ni.c futex: Add sys_futex_requeue() 2024-03-27 10:06:08 -04:00
sysctl-test.c
sysctl.c Merge: perf: Sync with upstream v6.8 2024-04-24 19:39:17 +00:00
task_work.c
taskstats.c
test_kprobes.c test_kprobes: Add recursed kprobe test case 2023-11-02 15:26:56 -06:00
torture.c
tracepoint.c
tsacct.c
ucount.c
uid16.c
uid16.h
umh.c freezer,umh: Clean up freezer/initrd interaction 2023-10-20 06:13:12 -04:00
up.c
user-return-notifier.c
user.c
user_namespace.c
usermode_driver.c
utsname.c
utsname_sysctl.c
watch_queue.c watch_queue: Free the page array when watch_queue is dismantled 2023-08-17 14:10:34 +02:00
watchdog.c Revert "printk: Bring back the RT bits." 2024-05-09 11:24:08 -04:00
watchdog_hld.c Revert "printk: Bring back the RT bits." 2024-05-09 11:24:08 -04:00
workqueue.c workqueue: Avoid using isolated cpus' timers on queue_delayed_work 2024-02-22 16:47:15 -03:00
workqueue_internal.h