diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-11 08:28:00 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-11 08:28:00 +0000 |
commit | 3565071f226432336a54d0193d729fa4508a3394 (patch) | |
tree | 4cde13f078f84c0a7785d234fd52edce7c90546a /debian/patches-rt/0101-printk-nbcon-Ensure-ownership-release-on-failed-emit.patch | |
parent | Adding upstream version 6.6.15. (diff) | |
download | linux-3565071f226432336a54d0193d729fa4508a3394.tar.xz linux-3565071f226432336a54d0193d729fa4508a3394.zip |
Adding debian version 6.6.15-2.debian/6.6.15-2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | debian/patches-rt/0101-printk-nbcon-Ensure-ownership-release-on-failed-emit.patch | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/debian/patches-rt/0101-printk-nbcon-Ensure-ownership-release-on-failed-emit.patch b/debian/patches-rt/0101-printk-nbcon-Ensure-ownership-release-on-failed-emit.patch new file mode 100644 index 0000000000..d96f2dc2b9 --- /dev/null +++ b/debian/patches-rt/0101-printk-nbcon-Ensure-ownership-release-on-failed-emit.patch @@ -0,0 +1,58 @@ +From: John Ogness <john.ogness@linutronix.de> +Date: Fri, 20 Oct 2023 09:52:59 +0000 +Subject: [PATCH 101/134] printk: nbcon: Ensure ownership release on failed + emit +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.6/older/patches-6.6.7-rt18.tar.xz + +Until now it was assumed that ownership has been lost when the +write_atomic() callback fails. nbcon_emit_next_record() only +returns false when ownership has been lost. + +Ensure ownership has been lost before reporting failure by +explicitly attempting a release. If the current context is not +the owner, the release has no effect. + +Signed-off-by: John Ogness <john.ogness@linutronix.de> +Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +--- + kernel/printk/nbcon.c | 19 ++++++++++--------- + 1 file changed, 10 insertions(+), 9 deletions(-) + +--- a/kernel/printk/nbcon.c ++++ b/kernel/printk/nbcon.c +@@ -852,7 +852,7 @@ static bool nbcon_emit_next_record(struc + unsigned long con_dropped; + struct nbcon_state cur; + unsigned long dropped; +- bool done; ++ bool done = false; + + /* + * The printk buffers are filled within an unsafe section. This +@@ -891,17 +891,18 @@ static bool nbcon_emit_next_record(struc + nbcon_state_read(con, &cur); + wctxt->unsafe_takeover = cur.unsafe_takeover; + +- if (con->write_atomic) { ++ if (con->write_atomic) + done = con->write_atomic(con, wctxt); +- } else { +- nbcon_context_release(ctxt); +- WARN_ON_ONCE(1); +- done = false; +- } + +- /* If not done, the emit was aborted. */ +- if (!done) ++ if (!done) { ++ /* ++ * The emit was aborted, probably due to a loss of ownership. ++ * Ensure ownership was lost or released before reporting the ++ * loss. ++ */ ++ nbcon_context_release(ctxt); + return false; ++ } + + /* + * Since any dropped message was successfully output, reset the |