[PATCH] test_list_sort: fix up const mismatch

Greg Kroah-Hartman posted 1 patch 1 month, 3 weeks ago
lib/tests/test_list_sort.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[PATCH] test_list_sort: fix up const mismatch
Posted by Greg Kroah-Hartman 1 month, 3 weeks ago
In the internal cmp function, a const pointer is cast out to a non-const
pointer by using container_of().  This is probably not what is intended
at all, so fix up the const marking to properly preserve what is really
happening (i.e. the const should flow through the container_of() call)

Cc: Jakub Kicinski <kuba@kernel.org>
Cc: David Gow <davidgow@google.com>
Cc: "Masami Hiramatsu (Google)" <mhiramat@kernel.org>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Kees Cook <kees@kernel.org>
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 lib/tests/test_list_sort.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/tests/test_list_sort.c b/lib/tests/test_list_sort.c
index 30879abc8a42..28158557b164 100644
--- a/lib/tests/test_list_sort.c
+++ b/lib/tests/test_list_sort.c
@@ -26,7 +26,7 @@ struct debug_el {
 	unsigned int serial;
 };
 
-static void check(struct kunit *test, struct debug_el *ela, struct debug_el *elb)
+static void check(struct kunit *test, const struct debug_el *ela, const struct debug_el *elb)
 {
 	struct debug_el **elts = test->priv;
 
@@ -46,7 +46,7 @@ static void check(struct kunit *test, struct debug_el *ela, struct debug_el *elb
 /* `priv` is the test pointer so check() can fail the test if the list is invalid. */
 static int cmp(void *priv, const struct list_head *a, const struct list_head *b)
 {
-	struct debug_el *ela, *elb;
+	const struct debug_el *ela, *elb;
 
 	ela = container_of(a, struct debug_el, list);
 	elb = container_of(b, struct debug_el, list);
-- 
2.52.0
Re: [PATCH] test_list_sort: fix up const mismatch
Posted by David Gow 1 month, 3 weeks ago
On Wed, 17 Dec 2025 at 20:37, Greg Kroah-Hartman
<gregkh@linuxfoundation.org> wrote:
>
> In the internal cmp function, a const pointer is cast out to a non-const
> pointer by using container_of().  This is probably not what is intended
> at all, so fix up the const marking to properly preserve what is really
> happening (i.e. the const should flow through the container_of() call)
>
> Cc: Jakub Kicinski <kuba@kernel.org>
> Cc: David Gow <davidgow@google.com>
> Cc: "Masami Hiramatsu (Google)" <mhiramat@kernel.org>
> Cc: Vlastimil Babka <vbabka@suse.cz>
> Cc: Kees Cook <kees@kernel.org>
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> ---

Thanks very much!

Reviewed-by: David Gow <davidgow@google.com>

Cheers,
-- David


>  lib/tests/test_list_sort.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/lib/tests/test_list_sort.c b/lib/tests/test_list_sort.c
> index 30879abc8a42..28158557b164 100644
> --- a/lib/tests/test_list_sort.c
> +++ b/lib/tests/test_list_sort.c
> @@ -26,7 +26,7 @@ struct debug_el {
>         unsigned int serial;
>  };
>
> -static void check(struct kunit *test, struct debug_el *ela, struct debug_el *elb)
> +static void check(struct kunit *test, const struct debug_el *ela, const struct debug_el *elb)
>  {
>         struct debug_el **elts = test->priv;
>
> @@ -46,7 +46,7 @@ static void check(struct kunit *test, struct debug_el *ela, struct debug_el *elb
>  /* `priv` is the test pointer so check() can fail the test if the list is invalid. */
>  static int cmp(void *priv, const struct list_head *a, const struct list_head *b)
>  {
> -       struct debug_el *ela, *elb;
> +       const struct debug_el *ela, *elb;
>
>         ela = container_of(a, struct debug_el, list);
>         elb = container_of(b, struct debug_el, list);
> --
> 2.52.0
>