Yo Tvrtko,
On Fri, 2026-05-22 at 10:01 +0100, Tvrtko Ursulin wrote:
> 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.
Hmm, is it now a build error, or a build warning? The commit title says
"warning".
Depending on what it really is, where should it go, misc-next or misc-
fixes?
P.
>
> 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 }),
> {}
> };
>