aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-kernel/crash/crash/0002-printk-use-committed-finalized-state-values.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-oe/recipes-kernel/crash/crash/0002-printk-use-committed-finalized-state-values.patch')
-rw-r--r--meta-oe/recipes-kernel/crash/crash/0002-printk-use-committed-finalized-state-values.patch103
1 files changed, 0 insertions, 103 deletions
diff --git a/meta-oe/recipes-kernel/crash/crash/0002-printk-use-committed-finalized-state-values.patch b/meta-oe/recipes-kernel/crash/crash/0002-printk-use-committed-finalized-state-values.patch
deleted file mode 100644
index 5213195c7..000000000
--- a/meta-oe/recipes-kernel/crash/crash/0002-printk-use-committed-finalized-state-values.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From 71e159c64000467e94e08aefc144f5e1cdaa4aa0 Mon Sep 17 00:00:00 2001
-From: John Ogness <john.ogness@linutronix.de>
-Date: Wed, 25 Nov 2020 05:27:53 +0106
-Subject: [PATCH 2/2] printk: use committed/finalized state values
-
-An addendum to the previous crash commit a5531b24750e.
-The ringbuffer entries use 2 state values (committed and finalized)
-rather than a single flag to represent being available for reading.
-Copy the definitions and state lookup function directly from the
-kernel source and use the new states.
-
-Upstream-Status: Backport [https://github.com/crash-utility/crash/commit/71e159c64000467e94e08aefc144f5e1cdaa4aa0]
-
-Signed-off-by: John Ogness <john.ogness@linutronix.de>
-Signed-off-by: Nikolay Borisov <nborisov@suse.com>
-Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
----
- printk.c | 48 +++++++++++++++++++++++++++++++++++++++++-------
- 1 file changed, 41 insertions(+), 7 deletions(-)
-
-diff --git a/printk.c b/printk.c
-index f6d54ce..8658016 100644
---- a/printk.c
-+++ b/printk.c
-@@ -1,12 +1,6 @@
- #include "defs.h"
- #include <ctype.h>
-
--#define DESC_SV_BITS (sizeof(unsigned long) * 8)
--#define DESC_COMMITTED_MASK (1UL << (DESC_SV_BITS - 1))
--#define DESC_REUSE_MASK (1UL << (DESC_SV_BITS - 2))
--#define DESC_FLAGS_MASK (DESC_COMMITTED_MASK | DESC_REUSE_MASK)
--#define DESC_ID_MASK (~DESC_FLAGS_MASK)
--
- /* convenience struct for passing many values to helper functions */
- struct prb_map {
- char *prb;
-@@ -21,6 +15,44 @@ struct prb_map {
- char *text_data;
- };
-
-+/*
-+ * desc_state and DESC_* definitions taken from kernel source:
-+ *
-+ * kernel/printk/printk_ringbuffer.h
-+ */
-+
-+/* The possible responses of a descriptor state-query. */
-+enum desc_state {
-+ desc_miss = -1, /* ID mismatch (pseudo state) */
-+ desc_reserved = 0x0, /* reserved, in use by writer */
-+ desc_committed = 0x1, /* committed by writer, could get reopened */
-+ desc_finalized = 0x2, /* committed, no further modification allowed */
-+ desc_reusable = 0x3, /* free, not yet used by any writer */
-+};
-+
-+#define DESC_SV_BITS (sizeof(unsigned long) * 8)
-+#define DESC_FLAGS_SHIFT (DESC_SV_BITS - 2)
-+#define DESC_FLAGS_MASK (3UL << DESC_FLAGS_SHIFT)
-+#define DESC_STATE(sv) (3UL & (sv >> DESC_FLAGS_SHIFT))
-+#define DESC_ID_MASK (~DESC_FLAGS_MASK)
-+#define DESC_ID(sv) ((sv) & DESC_ID_MASK)
-+
-+/*
-+ * get_desc_state() taken from kernel source:
-+ *
-+ * kernel/printk/printk_ringbuffer.c
-+ */
-+
-+/* Query the state of a descriptor. */
-+static enum desc_state get_desc_state(unsigned long id,
-+ unsigned long state_val)
-+{
-+ if (id != DESC_ID(state_val))
-+ return desc_miss;
-+
-+ return DESC_STATE(state_val);
-+}
-+
- static void
- init_offsets(void)
- {
-@@ -74,6 +106,7 @@ dump_record(struct prb_map *m, unsigned long id, int msg_flags)
- unsigned short text_len;
- unsigned long state_var;
- unsigned int caller_id;
-+ enum desc_state state;
- unsigned char level;
- unsigned long begin;
- unsigned long next;
-@@ -90,7 +123,8 @@ dump_record(struct prb_map *m, unsigned long id, int msg_flags)
- /* skip non-committed record */
- state_var = ULONG(desc + OFFSET(prb_desc_state_var) +
- OFFSET(atomic_long_t_counter));
-- if ((state_var & DESC_FLAGS_MASK) != DESC_COMMITTED_MASK)
-+ state = get_desc_state(id, state_var);
-+ if (state != desc_committed && state != desc_finalized)
- return;
-
- info = m->infos + ((id % m->desc_ring_count) * SIZE(printk_info));
---
-2.17.1
-