kunit: use kmemdup in kunit_filter_tests(), take suite as const
authorDaniel Latypov <dlatypov@google.com>
Mon, 16 May 2022 16:54:46 +0000 (09:54 -0700)
committerShuah Khan <skhan@linuxfoundation.org>
Thu, 7 Jul 2022 23:42:53 +0000 (17:42 -0600)
kmemdup() is easier than kmalloc() + memcpy(), per lkp bot.

Also make the input `suite` as const since we're now always making
copies after commit a127b154a8f2 ("kunit: tool: allow filtering test
cases via glob").

Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Daniel Latypov <dlatypov@google.com>
Reviewed-by: David Gow <davidgow@google.com>
Reviewed-by: Brendan Higgins <brendanhiggins@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
lib/kunit/executor.c

index 96f96e4..572f64e 100644 (file)
@@ -55,7 +55,7 @@ static void kunit_parse_filter_glob(struct kunit_test_filter *parsed,
 
 /* Create a copy of suite with only tests that match test_glob. */
 static struct kunit_suite *
-kunit_filter_tests(struct kunit_suite *const suite, const char *test_glob)
+kunit_filter_tests(const struct kunit_suite *const suite, const char *test_glob)
 {
        int n = 0;
        struct kunit_case *filtered, *test_case;
@@ -69,11 +69,9 @@ kunit_filter_tests(struct kunit_suite *const suite, const char *test_glob)
        if (n == 0)
                return NULL;
 
-       /* Use memcpy to workaround copy->name being const. */
-       copy = kmalloc(sizeof(*copy), GFP_KERNEL);
+       copy = kmemdup(suite, sizeof(*copy), GFP_KERNEL);
        if (!copy)
                return ERR_PTR(-ENOMEM);
-       memcpy(copy, suite, sizeof(*copy));
 
        filtered = kcalloc(n + 1, sizeof(*filtered), GFP_KERNEL);
        if (!filtered)