From 27d3313807296c3943a96ceef8c2b7279cb56962 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 18 May 2024 19:39:59 +0200 Subject: Adding debian version 6.7.7-1. Signed-off-by: Daniel Baumann --- ...buffer-Consider-committed-as-finalized-in.patch | 62 ++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 debian/patches-rt/0011-printk-ringbuffer-Consider-committed-as-finalized-in.patch (limited to 'debian/patches-rt/0011-printk-ringbuffer-Consider-committed-as-finalized-in.patch') diff --git a/debian/patches-rt/0011-printk-ringbuffer-Consider-committed-as-finalized-in.patch b/debian/patches-rt/0011-printk-ringbuffer-Consider-committed-as-finalized-in.patch new file mode 100644 index 0000000000..405969873c --- /dev/null +++ b/debian/patches-rt/0011-printk-ringbuffer-Consider-committed-as-finalized-in.patch @@ -0,0 +1,62 @@ +From: John Ogness +Date: Mon, 20 Nov 2023 12:46:35 +0100 +Subject: [PATCH 11/50] printk: ringbuffer: Consider committed as finalized in + panic +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.7/older/patches-6.7-rt6.tar.xz + +A descriptor in the committed state means the record does not yet +exist for the reader. However, for the panic CPU, committed +records should be handled as finalized records since they contain +message data in a consistent state and may contain additional +hints as to the cause of the panic. + +Add an exception for records in the commit state to not be +considered non-existing when reading from the panic CPU. + +Signed-off-by: John Ogness +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/printk/printk_ringbuffer.c | 17 ++++++++++++++--- + 1 file changed, 14 insertions(+), 3 deletions(-) + +--- a/kernel/printk/printk_ringbuffer.c ++++ b/kernel/printk/printk_ringbuffer.c +@@ -1857,6 +1857,8 @@ static bool copy_data(struct prb_data_ri + * descriptor. However, it also verifies that the record is finalized and has + * the sequence number @seq. On success, 0 is returned. + * ++ * For the panic CPU, committed descriptors are also considered finalized. ++ * + * Error return values: + * -EINVAL: A finalized record with sequence number @seq does not exist. + * -ENOENT: A finalized record with sequence number @seq exists, but its data +@@ -1875,17 +1877,26 @@ static int desc_read_finalized_seq(struc + + /* + * An unexpected @id (desc_miss) or @seq mismatch means the record +- * does not exist. A descriptor in the reserved or committed state +- * means the record does not yet exist for the reader. ++ * does not exist. A descriptor in the reserved state means the ++ * record does not yet exist for the reader. + */ + if (d_state == desc_miss || + d_state == desc_reserved || +- d_state == desc_committed || + s != seq) { + return -EINVAL; + } + + /* ++ * A descriptor in the committed state means the record does not yet ++ * exist for the reader. However, for the panic CPU, committed ++ * records are also handled as finalized records since they contain ++ * message data in a consistent state and may contain additional ++ * hints as to the cause of the panic. ++ */ ++ if (d_state == desc_committed && !this_cpu_in_panic()) ++ return -EINVAL; ++ ++ /* + * A descriptor in the reusable state may no longer have its data + * available; report it as existing but with lost data. Or the record + * may actually be a record with lost data. -- cgit v1.2.3