summaryrefslogtreecommitdiffstats
path: root/debian/patches-rt/0085-printk-nbcon-Relocate-32bit-seq-macros.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches-rt/0085-printk-nbcon-Relocate-32bit-seq-macros.patch')
-rw-r--r--debian/patches-rt/0085-printk-nbcon-Relocate-32bit-seq-macros.patch141
1 files changed, 0 insertions, 141 deletions
diff --git a/debian/patches-rt/0085-printk-nbcon-Relocate-32bit-seq-macros.patch b/debian/patches-rt/0085-printk-nbcon-Relocate-32bit-seq-macros.patch
deleted file mode 100644
index 6d1cf3686..000000000
--- a/debian/patches-rt/0085-printk-nbcon-Relocate-32bit-seq-macros.patch
+++ /dev/null
@@ -1,141 +0,0 @@
-From: John Ogness <john.ogness@linutronix.de>
-Date: Wed, 6 Dec 2023 12:01:56 +0000
-Subject: [PATCH 085/134] printk: nbcon: Relocate 32bit seq macros
-Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.6/older/patches-6.6.7-rt18.tar.xz
-
-The macros __seq_to_nbcon_seq() and __nbcon_seq_to_seq() are
-used to provide support for atomic handling of sequence numbers
-on 32bit systems. Until now this was only used by nbcon.c,
-which is why they were located in nbcon.c and include nbcon in
-the name.
-
-In a follow-up commit this functionality is also needed by
-printk_ringbuffer. Rather than duplicating the functionality,
-relocate the macros to printk_ringbuffer.h.
-
-Also, since the macros will be no longer nbcon-specific, rename
-them to __u64seq_to_ulseq() and __ulseq_to_u64seq().
-
-This does not result in any functional change.
-
-Signed-off-by: John Ogness <john.ogness@linutronix.de>
-Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
----
- kernel/printk/nbcon.c | 41 +++-----------------------------------
- kernel/printk/printk_ringbuffer.h | 33 ++++++++++++++++++++++++++++++
- 2 files changed, 37 insertions(+), 37 deletions(-)
-
---- a/kernel/printk/nbcon.c
-+++ b/kernel/printk/nbcon.c
-@@ -140,39 +140,6 @@ static inline bool nbcon_state_try_cmpxc
- return atomic_try_cmpxchg(&ACCESS_PRIVATE(con, nbcon_state), &cur->atom, new->atom);
- }
-
--#ifdef CONFIG_64BIT
--
--#define __seq_to_nbcon_seq(seq) (seq)
--#define __nbcon_seq_to_seq(seq) (seq)
--
--#else /* CONFIG_64BIT */
--
--#define __seq_to_nbcon_seq(seq) ((u32)seq)
--
--static inline u64 __nbcon_seq_to_seq(u32 nbcon_seq)
--{
-- u64 seq;
-- u64 rb_next_seq;
--
-- /*
-- * The provided sequence is only the lower 32 bits of the ringbuffer
-- * sequence. It needs to be expanded to 64bit. Get the next sequence
-- * number from the ringbuffer and fold it.
-- *
-- * Having a 32bit representation in the console is sufficient.
-- * If a console ever gets more than 2^31 records behind
-- * the ringbuffer then this is the least of the problems.
-- *
-- * Also the access to the ring buffer is always safe.
-- */
-- rb_next_seq = prb_next_seq(prb);
-- seq = rb_next_seq - ((u32)rb_next_seq - nbcon_seq);
--
-- return seq;
--}
--
--#endif /* CONFIG_64BIT */
--
- /**
- * nbcon_seq_read - Read the current console sequence
- * @con: Console to read the sequence of
-@@ -183,7 +150,7 @@ u64 nbcon_seq_read(struct console *con)
- {
- unsigned long nbcon_seq = atomic_long_read(&ACCESS_PRIVATE(con, nbcon_seq));
-
-- return __nbcon_seq_to_seq(nbcon_seq);
-+ return __ulseq_to_u64seq(prb, nbcon_seq);
- }
-
- /**
-@@ -204,7 +171,7 @@ void nbcon_seq_force(struct console *con
- */
- u64 valid_seq = max_t(u64, seq, prb_first_valid_seq(prb));
-
-- atomic_long_set(&ACCESS_PRIVATE(con, nbcon_seq), __seq_to_nbcon_seq(valid_seq));
-+ atomic_long_set(&ACCESS_PRIVATE(con, nbcon_seq), __u64seq_to_ulseq(valid_seq));
-
- /* Clear con->seq since nbcon consoles use con->nbcon_seq instead. */
- con->seq = 0;
-@@ -223,11 +190,11 @@ void nbcon_seq_force(struct console *con
- */
- static void nbcon_seq_try_update(struct nbcon_context *ctxt, u64 new_seq)
- {
-- unsigned long nbcon_seq = __seq_to_nbcon_seq(ctxt->seq);
-+ unsigned long nbcon_seq = __u64seq_to_ulseq(ctxt->seq);
- struct console *con = ctxt->console;
-
- if (atomic_long_try_cmpxchg(&ACCESS_PRIVATE(con, nbcon_seq), &nbcon_seq,
-- __seq_to_nbcon_seq(new_seq))) {
-+ __u64seq_to_ulseq(new_seq))) {
- ctxt->seq = new_seq;
- } else {
- ctxt->seq = nbcon_seq_read(con);
---- a/kernel/printk/printk_ringbuffer.h
-+++ b/kernel/printk/printk_ringbuffer.h
-@@ -381,4 +381,37 @@ bool prb_read_valid_info(struct printk_r
- u64 prb_first_valid_seq(struct printk_ringbuffer *rb);
- u64 prb_next_seq(struct printk_ringbuffer *rb);
-
-+#ifdef CONFIG_64BIT
-+
-+#define __u64seq_to_ulseq(u64seq) (u64seq)
-+#define __ulseq_to_u64seq(rb, ulseq) (ulseq)
-+
-+#else /* CONFIG_64BIT */
-+
-+#define __u64seq_to_ulseq(u64seq) ((u32)u64seq)
-+
-+static inline u64 __ulseq_to_u64seq(struct printk_ringbuffer *rb, u32 ulseq)
-+{
-+ u64 seq;
-+ u64 rb_next_seq;
-+
-+ /*
-+ * The provided sequence is only the lower 32 bits of the ringbuffer
-+ * sequence. It needs to be expanded to 64bit. Get the next sequence
-+ * number from the ringbuffer and fold it.
-+ *
-+ * Having a 32bit representation in the console is sufficient.
-+ * If a console ever gets more than 2^31 records behind
-+ * the ringbuffer then this is the least of the problems.
-+ *
-+ * Also the access to the ring buffer is always safe.
-+ */
-+ rb_next_seq = prb_next_seq(rb);
-+ seq = rb_next_seq - ((u32)rb_next_seq - ulseq);
-+
-+ return seq;
-+}
-+
-+#endif /* CONFIG_64BIT */
-+
- #endif /* _KERNEL_PRINTK_RINGBUFFER_H */