Initializing compile time constant struct or arrays from another such
variable is a gcc extension, while clang strictly requires a compile time
constant literal.

As reported by LKP:

>> drivers/gpu/drm/scheduler/tests/tests_scheduler.c:675:10: error: initializer 
>> element is not a compile-time constant
                                 drm_sched_scheduler_two_clients_attr),
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/kunit/test.h:224:13: note: expanded from macro 
'KUNIT_CASE_PARAM_ATTR'
                     .attr = attributes, .module_name = KBUILD_MODNAME}
                             ^~~~~~~~~~
   1 error generated.

vim +675 drivers/gpu/drm/scheduler/tests/tests_scheduler.c

   671
   672  static struct kunit_case drm_sched_scheduler_two_clients_tests[] = {
   673          KUNIT_CASE_PARAM_ATTR(drm_sched_scheduler_two_clients_test,
   674                                
drm_sched_scheduler_two_clients_gen_params,
 > 675                                drm_sched_scheduler_two_clients_attr),
   676          {}
   677  };
   678

Fix it by using a compound literal as other tests do.

Signed-off-by: Tvrtko Ursulin <[email protected]>
Reported-by: kernel test robot <[email protected]>
Closes: 
https://lore.kernel.org/oe-kbuild-all/[email protected]/
Fixes: 97ef806a5314 ("drm/sched: Add some scheduling quality unit tests")
Cc: Philipp Stanner <[email protected]>
---
 drivers/gpu/drm/scheduler/tests/tests_scheduler.c | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/scheduler/tests/tests_scheduler.c 
b/drivers/gpu/drm/scheduler/tests/tests_scheduler.c
index 8b2e4ef9915f..90d31888cf92 100644
--- a/drivers/gpu/drm/scheduler/tests/tests_scheduler.c
+++ b/drivers/gpu/drm/scheduler/tests/tests_scheduler.c
@@ -666,14 +666,10 @@ static void drm_sched_scheduler_two_clients_test(struct 
kunit *test)
        }
 }
 
-static const struct kunit_attributes drm_sched_scheduler_two_clients_attr = {
-       .speed = KUNIT_SPEED_SLOW,
-};
-
 static struct kunit_case drm_sched_scheduler_two_clients_tests[] = {
        KUNIT_CASE_PARAM_ATTR(drm_sched_scheduler_two_clients_test,
                              drm_sched_scheduler_two_clients_gen_params,
-                             drm_sched_scheduler_two_clients_attr),
+                             { .speed = KUNIT_SPEED_SLOW }),
        {}
 };
 
@@ -858,14 +854,10 @@ static void drm_sched_scheduler_many_clients_test(struct 
kunit *test)
                drm_mock_sched_entity_free(client[i].entity);
 }
 
-static const struct kunit_attributes drm_sched_scheduler_many_clients_attr = {
-       .speed = KUNIT_SPEED_SLOW,
-};
-
 static struct kunit_case drm_sched_scheduler_many_clients_tests[] = {
        KUNIT_CASE_PARAM_ATTR(drm_sched_scheduler_many_clients_test,
                              drm_sched_scheduler_many_clients_gen_params,
-                             drm_sched_scheduler_many_clients_attr),
+                             { .speed = KUNIT_SPEED_SLOW }),
        {}
 };
 
-- 
2.54.0

Reply via email to