commit 364b2e413c69 ("sbitmapq: remove struct and member validation
in sbitmapq_init()") lifted the use of the "sbitmapq" command
unconditionally. Without the patch, the command fails with the
following error on kernels without sbitmap:
crash> sbitmapq ffff88015796e550
sbitmapq: invalid structure member offset: sbitmap_queue_sb
FILE: sbitmap.c LINE: 385 FUNCTION: sbitmap_queue_context_load()
Now the command supports Linux 4.9 and later kernels since it was
abstracted out, so it can be limited by the non-existence of the
sbitmap structure.
Signed-off-by: Kazuhito Hagio <k-hagio-ab(a)nec.com>
---
sbitmap.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/sbitmap.c b/sbitmap.c
index be5d30a8ea88..12d6512a1e4d 100644
--- a/sbitmap.c
+++ b/sbitmap.c
@@ -540,6 +540,10 @@ void sbitmapq_init(void)
STRUCT_SIZE_INIT(sbitmap_queue, "sbitmap_queue");
STRUCT_SIZE_INIT(sbq_wait_state, "sbq_wait_state");
+ /* sbitmap was abstracted out by commit 88459642cba4 on Linux 4.9. */
+ if (INVALID_SIZE(sbitmap))
+ command_not_supported();
+
MEMBER_OFFSET_INIT(sbitmap_word_depth, "sbitmap_word", "depth");
MEMBER_OFFSET_INIT(sbitmap_word_word, "sbitmap_word", "word");
MEMBER_OFFSET_INIT(sbitmap_word_cleared, "sbitmap_word",
"cleared");
--
2.31.1
Show replies by date
Lianbo,
My apologies, please ignore this orphan patch.
It looks like the list system dropped one of the patchset again
for some reason. Will resend them another way..
Thanks,
Kazu
On 2022/06/10 16:44, Kazuhito Hagio wrote:
> commit 364b2e413c69 ("sbitmapq: remove struct and member validation
> in sbitmapq_init()") lifted the use of the "sbitmapq" command
> unconditionally. Without the patch, the command fails with the
> following error on kernels without sbitmap:
>
> crash> sbitmapq ffff88015796e550
>
> sbitmapq: invalid structure member offset: sbitmap_queue_sb
> FILE: sbitmap.c LINE: 385 FUNCTION: sbitmap_queue_context_load()
>
> Now the command supports Linux 4.9 and later kernels since it was
> abstracted out, so it can be limited by the non-existence of the
> sbitmap structure.
>
> Signed-off-by: Kazuhito Hagio <k-hagio-ab(a)nec.com>
> ---
> sbitmap.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/sbitmap.c b/sbitmap.c
> index be5d30a8ea88..12d6512a1e4d 100644
> --- a/sbitmap.c
> +++ b/sbitmap.c
> @@ -540,6 +540,10 @@ void sbitmapq_init(void)
> STRUCT_SIZE_INIT(sbitmap_queue, "sbitmap_queue");
> STRUCT_SIZE_INIT(sbq_wait_state, "sbq_wait_state");
>
> + /* sbitmap was abstracted out by commit 88459642cba4 on Linux 4.9. */
> + if (INVALID_SIZE(sbitmap))
> + command_not_supported();
> +
> MEMBER_OFFSET_INIT(sbitmap_word_depth, "sbitmap_word",
"depth");
> MEMBER_OFFSET_INIT(sbitmap_word_word, "sbitmap_word",
"word");
> MEMBER_OFFSET_INIT(sbitmap_word_cleared, "sbitmap_word",
"cleared");