diff options
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.patch | 103 |
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 5213195c7d..0000000000 --- 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 - |