summaryrefslogtreecommitdiffstats
path: root/debian/patches-rt/0082-printk-nbcon-Allow-drivers-to-mark-unsafe-regions-an.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches-rt/0082-printk-nbcon-Allow-drivers-to-mark-unsafe-regions-an.patch')
-rw-r--r--debian/patches-rt/0082-printk-nbcon-Allow-drivers-to-mark-unsafe-regions-an.patch136
1 files changed, 0 insertions, 136 deletions
diff --git a/debian/patches-rt/0082-printk-nbcon-Allow-drivers-to-mark-unsafe-regions-an.patch b/debian/patches-rt/0082-printk-nbcon-Allow-drivers-to-mark-unsafe-regions-an.patch
deleted file mode 100644
index 16a07a839e..0000000000
--- a/debian/patches-rt/0082-printk-nbcon-Allow-drivers-to-mark-unsafe-regions-an.patch
+++ /dev/null
@@ -1,136 +0,0 @@
-From: Thomas Gleixner <tglx@linutronix.de>
-Date: Sat, 16 Sep 2023 21:26:07 +0206
-Subject: [PATCH 082/134] printk: nbcon: Allow drivers to mark unsafe regions
- and check state
-Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.6/older/patches-6.6.7-rt18.tar.xz
-
-For the write_atomic callback, the console driver may have unsafe
-regions that need to be appropriately marked. Provide functions
-that accept the nbcon_write_context struct to allow for the driver
-to enter and exit unsafe regions.
-
-Also provide a function for drivers to check if they are still the
-owner of the console.
-
-Co-developed-by: John Ogness <john.ogness@linutronix.de>
-Signed-off-by: John Ogness <john.ogness@linutronix.de>
-Signed-off-by: Thomas Gleixner (Intel) <tglx@linutronix.de>
-Reviewed-by: Petr Mladek <pmladek@suse.com>
-Signed-off-by: Petr Mladek <pmladek@suse.com>
-Link: https://lore.kernel.org/r/20230916192007.608398-9-john.ogness@linutronix.de
-Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
----
- include/linux/console.h | 10 ++++++
- kernel/printk/nbcon.c | 75 ++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 85 insertions(+)
-
---- a/include/linux/console.h
-+++ b/include/linux/console.h
-@@ -451,6 +451,16 @@ static inline bool console_is_registered
- lockdep_assert_console_list_lock_held(); \
- hlist_for_each_entry(con, &console_list, node)
-
-+#ifdef CONFIG_PRINTK
-+extern bool nbcon_can_proceed(struct nbcon_write_context *wctxt);
-+extern bool nbcon_enter_unsafe(struct nbcon_write_context *wctxt);
-+extern bool nbcon_exit_unsafe(struct nbcon_write_context *wctxt);
-+#else
-+static inline bool nbcon_can_proceed(struct nbcon_write_context *wctxt) { return false; }
-+static inline bool nbcon_enter_unsafe(struct nbcon_write_context *wctxt) { return false; }
-+static inline bool nbcon_exit_unsafe(struct nbcon_write_context *wctxt) { return false; }
-+#endif
-+
- extern int console_set_on_cmdline;
- extern struct console *early_console;
-
---- a/kernel/printk/nbcon.c
-+++ b/kernel/printk/nbcon.c
-@@ -732,6 +732,41 @@ static bool nbcon_context_can_proceed(st
- return false;
- }
-
-+/**
-+ * nbcon_can_proceed - Check whether ownership can proceed
-+ * @wctxt: The write context that was handed to the write function
-+ *
-+ * Return: True if this context still owns the console. False if
-+ * ownership was handed over or taken.
-+ *
-+ * It is used in nbcon_enter_unsafe() to make sure that it still owns the
-+ * lock. Also it is used in nbcon_exit_unsafe() to eventually free the lock
-+ * for a higher priority context which asked for the friendly handover.
-+ *
-+ * It can be called inside an unsafe section when the console is just
-+ * temporary in safe state instead of exiting and entering the unsafe state.
-+ *
-+ * Also it can be called in the safe context before doing an expensive safe
-+ * operation. It does not make sense to do the operation when a higher
-+ * priority context took the lock.
-+ *
-+ * When this function returns false then the calling context no longer owns
-+ * the console and is no longer allowed to go forward. In this case it must
-+ * back out immediately and carefully. The buffer content is also no longer
-+ * trusted since it no longer belongs to the calling context.
-+ */
-+bool nbcon_can_proceed(struct nbcon_write_context *wctxt)
-+{
-+ struct nbcon_context *ctxt = &ACCESS_PRIVATE(wctxt, ctxt);
-+ struct console *con = ctxt->console;
-+ struct nbcon_state cur;
-+
-+ nbcon_state_read(con, &cur);
-+
-+ return nbcon_context_can_proceed(ctxt, &cur);
-+}
-+EXPORT_SYMBOL_GPL(nbcon_can_proceed);
-+
- #define nbcon_context_enter_unsafe(c) __nbcon_context_update_unsafe(c, true)
- #define nbcon_context_exit_unsafe(c) __nbcon_context_update_unsafe(c, false)
-
-@@ -783,6 +818,46 @@ static bool __nbcon_context_update_unsaf
- }
-
- /**
-+ * nbcon_enter_unsafe - Enter an unsafe region in the driver
-+ * @wctxt: The write context that was handed to the write function
-+ *
-+ * Return: True if this context still owns the console. False if
-+ * ownership was handed over or taken.
-+ *
-+ * When this function returns false then the calling context no longer owns
-+ * the console and is no longer allowed to go forward. In this case it must
-+ * back out immediately and carefully. The buffer content is also no longer
-+ * trusted since it no longer belongs to the calling context.
-+ */
-+bool nbcon_enter_unsafe(struct nbcon_write_context *wctxt)
-+{
-+ struct nbcon_context *ctxt = &ACCESS_PRIVATE(wctxt, ctxt);
-+
-+ return nbcon_context_enter_unsafe(ctxt);
-+}
-+EXPORT_SYMBOL_GPL(nbcon_enter_unsafe);
-+
-+/**
-+ * nbcon_exit_unsafe - Exit an unsafe region in the driver
-+ * @wctxt: The write context that was handed to the write function
-+ *
-+ * Return: True if this context still owns the console. False if
-+ * ownership was handed over or taken.
-+ *
-+ * When this function returns false then the calling context no longer owns
-+ * the console and is no longer allowed to go forward. In this case it must
-+ * back out immediately and carefully. The buffer content is also no longer
-+ * trusted since it no longer belongs to the calling context.
-+ */
-+bool nbcon_exit_unsafe(struct nbcon_write_context *wctxt)
-+{
-+ struct nbcon_context *ctxt = &ACCESS_PRIVATE(wctxt, ctxt);
-+
-+ return nbcon_context_exit_unsafe(ctxt);
-+}
-+EXPORT_SYMBOL_GPL(nbcon_exit_unsafe);
-+
-+/**
- * nbcon_emit_next_record - Emit a record in the acquired context
- * @wctxt: The write context that will be handed to the write function
- *