[Crash-utility] [PATCH 5/5] zram: fix failure invalid structure member offset: zram_table_flag

HATAYAMA Daisuke d.hatayama at fujitsu.com
Wed May 27 04:59:15 UTC 2020


On vmcore of the kernel version 4.18.0-147.5.1.el8_1.x86_64, there is
the following error when trying to read the user-space memory that is
swapped out into some zram device:

    crash> rd -u 0x00007f9b88bea000

    rd: invalid structure member offset: zram_table_flag
        FILE: diskdump.c  LINE: 2784  FUNCTION: try_zram_decompress()

    [./crash] error trace: 47aaa2 => 571900 => 53a3f1 => 53a373

      53a373: OFFSET_verify.part.27+51
      53a3f1: OFFSET_verify+49
      571900: try_zram_decompress+1808
      47aaa2: readmem+2562

    rd: invalid structure member offset: zram_table_flag
        FILE: diskdump.c  LINE: 2784  FUNCTION: try_zram_decompress()

This message means that there is no flags member in zram_table_entry
structure. The flags member is renamed from the former value by the
following commit for refactoring:

    7e5292831b346bacb05558ca385cae366187314c
    zram: refactor flags and writeback stuff

Let's initialize offset_table.zram_table_flags by value member as
well.
---
 diskdump.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/diskdump.c b/diskdump.c
index 65f43ff..63a08a1 100644
--- a/diskdump.c
+++ b/diskdump.c
@@ -2592,6 +2592,8 @@ zram_init(void)
 	MEMBER_OFFSET_INIT(zram_mempoll, "zram", "mem_pool");
 	MEMBER_OFFSET_INIT(zram_compressor, "zram", "compressor");
 	MEMBER_OFFSET_INIT(zram_table_flag, "zram_table_entry", "flags");
+	if (INVALID_MEMBER(zram_table_flag))
+		MEMBER_OFFSET_INIT(zram_table_flag, "zram_table_entry", "value");
 	STRUCT_SIZE_INIT(zram_table_entry, "zram_table_entry");
 }
 
-- 
1.8.3.1




More information about the Crash-utility mailing list