sched_ext: Fix function pointer type mismatches in BPF selftests
authorVishal Chourasia <vishalc@linux.ibm.com>
Thu, 24 Oct 2024 05:16:09 +0000 (10:46 +0530)
committerTejun Heo <tj@kernel.org>
Thu, 24 Oct 2024 16:56:17 +0000 (06:56 -1000)
Fix incompatible function pointer type warnings in sched_ext BPF selftests by
explicitly casting the function pointers when initializing struct_ops.
This addresses multiple -Wincompatible-function-pointer-types warnings from the
clang compiler where function signatures didn't match exactly.

The void * cast ensures the compiler accepts the function pointer
assignment despite minor type differences in the parameters.

Signed-off-by: Vishal Chourasia <vishalc@linux.ibm.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
19 files changed:
tools/testing/selftests/sched_ext/create_dsq.bpf.c
tools/testing/selftests/sched_ext/ddsp_bogus_dsq_fail.bpf.c
tools/testing/selftests/sched_ext/ddsp_vtimelocal_fail.bpf.c
tools/testing/selftests/sched_ext/dsp_local_on.bpf.c
tools/testing/selftests/sched_ext/enq_select_cpu_fails.bpf.c
tools/testing/selftests/sched_ext/exit.bpf.c
tools/testing/selftests/sched_ext/hotplug.bpf.c
tools/testing/selftests/sched_ext/init_enable_count.bpf.c
tools/testing/selftests/sched_ext/maximal.bpf.c
tools/testing/selftests/sched_ext/maybe_null.bpf.c
tools/testing/selftests/sched_ext/maybe_null_fail_dsp.bpf.c
tools/testing/selftests/sched_ext/maybe_null_fail_yld.bpf.c
tools/testing/selftests/sched_ext/prog_run.bpf.c
tools/testing/selftests/sched_ext/select_cpu_dfl.bpf.c
tools/testing/selftests/sched_ext/select_cpu_dfl_nodispatch.bpf.c
tools/testing/selftests/sched_ext/select_cpu_dispatch.bpf.c
tools/testing/selftests/sched_ext/select_cpu_dispatch_bad_dsq.bpf.c
tools/testing/selftests/sched_ext/select_cpu_dispatch_dbl_dsp.bpf.c
tools/testing/selftests/sched_ext/select_cpu_vtime.bpf.c

index 23f79ed..2cfc4ff 100644 (file)
@@ -51,8 +51,8 @@ s32 BPF_STRUCT_OPS_SLEEPABLE(create_dsq_init)
 
 SEC(".struct_ops.link")
 struct sched_ext_ops create_dsq_ops = {
-       .init_task              = create_dsq_init_task,
-       .exit_task              = create_dsq_exit_task,
-       .init                   = create_dsq_init,
+       .init_task              = (void *) create_dsq_init_task,
+       .exit_task              = (void *) create_dsq_exit_task,
+       .init                   = (void *) create_dsq_init,
        .name                   = "create_dsq",
 };
index e97ad41..37d9bf6 100644 (file)
@@ -35,8 +35,8 @@ void BPF_STRUCT_OPS(ddsp_bogus_dsq_fail_exit, struct scx_exit_info *ei)
 
 SEC(".struct_ops.link")
 struct sched_ext_ops ddsp_bogus_dsq_fail_ops = {
-       .select_cpu             = ddsp_bogus_dsq_fail_select_cpu,
-       .exit                   = ddsp_bogus_dsq_fail_exit,
+       .select_cpu             = (void *) ddsp_bogus_dsq_fail_select_cpu,
+       .exit                   = (void *) ddsp_bogus_dsq_fail_exit,
        .name                   = "ddsp_bogus_dsq_fail",
        .timeout_ms             = 1000U,
 };
index dde7e7d..dffc97d 100644 (file)
@@ -32,8 +32,8 @@ void BPF_STRUCT_OPS(ddsp_vtimelocal_fail_exit, struct scx_exit_info *ei)
 
 SEC(".struct_ops.link")
 struct sched_ext_ops ddsp_vtimelocal_fail_ops = {
-       .select_cpu             = ddsp_vtimelocal_fail_select_cpu,
-       .exit                   = ddsp_vtimelocal_fail_exit,
+       .select_cpu             = (void *) ddsp_vtimelocal_fail_select_cpu,
+       .exit                   = (void *) ddsp_vtimelocal_fail_exit,
        .name                   = "ddsp_vtimelocal_fail",
        .timeout_ms             = 1000U,
 };
index efb4672..6a7db15 100644 (file)
@@ -56,10 +56,10 @@ void BPF_STRUCT_OPS(dsp_local_on_exit, struct scx_exit_info *ei)
 
 SEC(".struct_ops.link")
 struct sched_ext_ops dsp_local_on_ops = {
-       .select_cpu             = dsp_local_on_select_cpu,
-       .enqueue                = dsp_local_on_enqueue,
-       .dispatch               = dsp_local_on_dispatch,
-       .exit                   = dsp_local_on_exit,
+       .select_cpu             = (void *) dsp_local_on_select_cpu,
+       .enqueue                = (void *) dsp_local_on_enqueue,
+       .dispatch               = (void *) dsp_local_on_dispatch,
+       .exit                   = (void *) dsp_local_on_exit,
        .name                   = "dsp_local_on",
        .timeout_ms             = 1000U,
 };
index b3dfc10..1efb50d 100644 (file)
@@ -36,8 +36,8 @@ void BPF_STRUCT_OPS(enq_select_cpu_fails_enqueue, struct task_struct *p,
 
 SEC(".struct_ops.link")
 struct sched_ext_ops enq_select_cpu_fails_ops = {
-       .select_cpu             = enq_select_cpu_fails_select_cpu,
-       .enqueue                = enq_select_cpu_fails_enqueue,
+       .select_cpu             = (void *) enq_select_cpu_fails_select_cpu,
+       .enqueue                = (void *) enq_select_cpu_fails_enqueue,
        .name                   = "enq_select_cpu_fails",
        .timeout_ms             = 1000U,
 };
index ae12dda..bf79ccd 100644 (file)
@@ -72,13 +72,13 @@ s32 BPF_STRUCT_OPS_SLEEPABLE(exit_init)
 
 SEC(".struct_ops.link")
 struct sched_ext_ops exit_ops = {
-       .select_cpu             = exit_select_cpu,
-       .enqueue                = exit_enqueue,
-       .dispatch               = exit_dispatch,
-       .init_task              = exit_init_task,
-       .enable                 = exit_enable,
-       .exit                   = exit_exit,
-       .init                   = exit_init,
+       .select_cpu             = (void *) exit_select_cpu,
+       .enqueue                = (void *) exit_enqueue,
+       .dispatch               = (void *) exit_dispatch,
+       .init_task              = (void *) exit_init_task,
+       .enable                 = (void *) exit_enable,
+       .exit                   = (void *) exit_exit,
+       .init                   = (void *) exit_init,
        .name                   = "exit",
        .timeout_ms             = 1000U,
 };
index 8f2601d..6c9f25c 100644 (file)
@@ -46,16 +46,16 @@ void BPF_STRUCT_OPS_SLEEPABLE(hotplug_cpu_offline, s32 cpu)
 
 SEC(".struct_ops.link")
 struct sched_ext_ops hotplug_cb_ops = {
-       .cpu_online             = hotplug_cpu_online,
-       .cpu_offline            = hotplug_cpu_offline,
-       .exit                   = hotplug_exit,
+       .cpu_online             = (void *) hotplug_cpu_online,
+       .cpu_offline            = (void *) hotplug_cpu_offline,
+       .exit                   = (void *) hotplug_exit,
        .name                   = "hotplug_cbs",
        .timeout_ms             = 1000U,
 };
 
 SEC(".struct_ops.link")
 struct sched_ext_ops hotplug_nocb_ops = {
-       .exit                   = hotplug_exit,
+       .exit                   = (void *) hotplug_exit,
        .name                   = "hotplug_nocbs",
        .timeout_ms             = 1000U,
 };
index 47ea89a..5eb9edb 100644 (file)
@@ -45,9 +45,9 @@ void BPF_STRUCT_OPS(cnt_disable, struct task_struct *p)
 
 SEC(".struct_ops.link")
 struct sched_ext_ops init_enable_count_ops = {
-       .init_task      = cnt_init_task,
-       .exit_task      = cnt_exit_task,
-       .enable         = cnt_enable,
-       .disable        = cnt_disable,
+       .init_task      = (void *) cnt_init_task,
+       .exit_task      = (void *) cnt_exit_task,
+       .enable         = (void *) cnt_enable,
+       .disable        = (void *) cnt_disable,
        .name           = "init_enable_count",
 };
index 00bfa9c..4d4cd8d 100644 (file)
@@ -131,34 +131,34 @@ void BPF_STRUCT_OPS(maximal_exit, struct scx_exit_info *info)
 
 SEC(".struct_ops.link")
 struct sched_ext_ops maximal_ops = {
-       .select_cpu             = maximal_select_cpu,
-       .enqueue                = maximal_enqueue,
-       .dequeue                = maximal_dequeue,
-       .dispatch               = maximal_dispatch,
-       .runnable               = maximal_runnable,
-       .running                = maximal_running,
-       .stopping               = maximal_stopping,
-       .quiescent              = maximal_quiescent,
-       .yield                  = maximal_yield,
-       .core_sched_before      = maximal_core_sched_before,
-       .set_weight             = maximal_set_weight,
-       .set_cpumask            = maximal_set_cpumask,
-       .update_idle            = maximal_update_idle,
-       .cpu_acquire            = maximal_cpu_acquire,
-       .cpu_release            = maximal_cpu_release,
-       .cpu_online             = maximal_cpu_online,
-       .cpu_offline            = maximal_cpu_offline,
-       .init_task              = maximal_init_task,
-       .enable                 = maximal_enable,
-       .exit_task              = maximal_exit_task,
-       .disable                = maximal_disable,
-       .cgroup_init            = maximal_cgroup_init,
-       .cgroup_exit            = maximal_cgroup_exit,
-       .cgroup_prep_move       = maximal_cgroup_prep_move,
-       .cgroup_move            = maximal_cgroup_move,
-       .cgroup_cancel_move     = maximal_cgroup_cancel_move,
-       .cgroup_set_weight      = maximal_cgroup_set_weight,
-       .init                   = maximal_init,
-       .exit                   = maximal_exit,
+       .select_cpu             = (void *) maximal_select_cpu,
+       .enqueue                = (void *) maximal_enqueue,
+       .dequeue                = (void *) maximal_dequeue,
+       .dispatch               = (void *) maximal_dispatch,
+       .runnable               = (void *) maximal_runnable,
+       .running                = (void *) maximal_running,
+       .stopping               = (void *) maximal_stopping,
+       .quiescent              = (void *) maximal_quiescent,
+       .yield                  = (void *) maximal_yield,
+       .core_sched_before      = (void *) maximal_core_sched_before,
+       .set_weight             = (void *) maximal_set_weight,
+       .set_cpumask            = (void *) maximal_set_cpumask,
+       .update_idle            = (void *) maximal_update_idle,
+       .cpu_acquire            = (void *) maximal_cpu_acquire,
+       .cpu_release            = (void *) maximal_cpu_release,
+       .cpu_online             = (void *) maximal_cpu_online,
+       .cpu_offline            = (void *) maximal_cpu_offline,
+       .init_task              = (void *) maximal_init_task,
+       .enable                 = (void *) maximal_enable,
+       .exit_task              = (void *) maximal_exit_task,
+       .disable                = (void *) maximal_disable,
+       .cgroup_init            = (void *) maximal_cgroup_init,
+       .cgroup_exit            = (void *) maximal_cgroup_exit,
+       .cgroup_prep_move       = (void *) maximal_cgroup_prep_move,
+       .cgroup_move            = (void *) maximal_cgroup_move,
+       .cgroup_cancel_move     = (void *) maximal_cgroup_cancel_move,
+       .cgroup_set_weight      = (void *) maximal_cgroup_set_weight,
+       .init                   = (void *) maximal_init,
+       .exit                   = (void *) maximal_exit,
        .name                   = "maximal",
 };
index 27d0f38..cf4ae87 100644 (file)
@@ -29,8 +29,8 @@ bool BPF_STRUCT_OPS(maybe_null_success_yield, struct task_struct *from,
 
 SEC(".struct_ops.link")
 struct sched_ext_ops maybe_null_success = {
-       .dispatch               = maybe_null_success_dispatch,
-       .yield                  = maybe_null_success_yield,
-       .enable                 = maybe_null_running,
+       .dispatch               = (void *) maybe_null_success_dispatch,
+       .yield                  = (void *) maybe_null_success_yield,
+       .enable                 = (void *) maybe_null_running,
        .name                   = "minimal",
 };
index c064105..ec724d7 100644 (file)
@@ -19,7 +19,7 @@ void BPF_STRUCT_OPS(maybe_null_fail_dispatch, s32 cpu, struct task_struct *p)
 
 SEC(".struct_ops.link")
 struct sched_ext_ops maybe_null_fail = {
-       .dispatch               = maybe_null_fail_dispatch,
-       .enable                 = maybe_null_running,
+       .dispatch               = (void *) maybe_null_fail_dispatch,
+       .enable                 = (void *) maybe_null_running,
        .name                   = "maybe_null_fail_dispatch",
 };
index 3c17400..e6552ca 100644 (file)
@@ -22,7 +22,7 @@ bool BPF_STRUCT_OPS(maybe_null_fail_yield, struct task_struct *from,
 
 SEC(".struct_ops.link")
 struct sched_ext_ops maybe_null_fail = {
-       .yield                  = maybe_null_fail_yield,
-       .enable                 = maybe_null_running,
+       .yield                  = (void *) maybe_null_fail_yield,
+       .enable                 = (void *) maybe_null_running,
        .name                   = "maybe_null_fail_yield",
 };
index 6a4d7c4..00c2676 100644 (file)
@@ -28,6 +28,6 @@ void BPF_STRUCT_OPS(prog_run_exit, struct scx_exit_info *ei)
 
 SEC(".struct_ops.link")
 struct sched_ext_ops prog_run_ops = {
-       .exit                   = prog_run_exit,
+       .exit                   = (void *) prog_run_exit,
        .name                   = "prog_run",
 };
index 2ed2991..f171ac4 100644 (file)
@@ -35,6 +35,6 @@ void BPF_STRUCT_OPS(select_cpu_dfl_enqueue, struct task_struct *p,
 
 SEC(".struct_ops.link")
 struct sched_ext_ops select_cpu_dfl_ops = {
-       .enqueue                = select_cpu_dfl_enqueue,
+       .enqueue                = (void *) select_cpu_dfl_enqueue,
        .name                   = "select_cpu_dfl",
 };
index 4bb5abb..9efdbb7 100644 (file)
@@ -82,8 +82,8 @@ s32 BPF_STRUCT_OPS(select_cpu_dfl_nodispatch_init_task,
 
 SEC(".struct_ops.link")
 struct sched_ext_ops select_cpu_dfl_nodispatch_ops = {
-       .select_cpu             = select_cpu_dfl_nodispatch_select_cpu,
-       .enqueue                = select_cpu_dfl_nodispatch_enqueue,
-       .init_task              = select_cpu_dfl_nodispatch_init_task,
+       .select_cpu             = (void *) select_cpu_dfl_nodispatch_select_cpu,
+       .enqueue                = (void *) select_cpu_dfl_nodispatch_enqueue,
+       .init_task              = (void *) select_cpu_dfl_nodispatch_init_task,
        .name                   = "select_cpu_dfl_nodispatch",
 };
index f0b96a4..59bfc4f 100644 (file)
@@ -35,7 +35,7 @@ dispatch:
 
 SEC(".struct_ops.link")
 struct sched_ext_ops select_cpu_dispatch_ops = {
-       .select_cpu             = select_cpu_dispatch_select_cpu,
+       .select_cpu             = (void *) select_cpu_dispatch_select_cpu,
        .name                   = "select_cpu_dispatch",
        .timeout_ms             = 1000U,
 };
index 7b42ddc..3bbd5fc 100644 (file)
@@ -30,8 +30,8 @@ void BPF_STRUCT_OPS(select_cpu_dispatch_bad_dsq_exit, struct scx_exit_info *ei)
 
 SEC(".struct_ops.link")
 struct sched_ext_ops select_cpu_dispatch_bad_dsq_ops = {
-       .select_cpu             = select_cpu_dispatch_bad_dsq_select_cpu,
-       .exit                   = select_cpu_dispatch_bad_dsq_exit,
+       .select_cpu             = (void *) select_cpu_dispatch_bad_dsq_select_cpu,
+       .exit                   = (void *) select_cpu_dispatch_bad_dsq_exit,
        .name                   = "select_cpu_dispatch_bad_dsq",
        .timeout_ms             = 1000U,
 };
index 653e3dc..0fda57f 100644 (file)
@@ -31,8 +31,8 @@ void BPF_STRUCT_OPS(select_cpu_dispatch_dbl_dsp_exit, struct scx_exit_info *ei)
 
 SEC(".struct_ops.link")
 struct sched_ext_ops select_cpu_dispatch_dbl_dsp_ops = {
-       .select_cpu             = select_cpu_dispatch_dbl_dsp_select_cpu,
-       .exit                   = select_cpu_dispatch_dbl_dsp_exit,
+       .select_cpu             = (void *) select_cpu_dispatch_dbl_dsp_select_cpu,
+       .exit                   = (void *) select_cpu_dispatch_dbl_dsp_exit,
        .name                   = "select_cpu_dispatch_dbl_dsp",
        .timeout_ms             = 1000U,
 };
index 7f3ebf4..e6c67bc 100644 (file)
@@ -81,12 +81,12 @@ s32 BPF_STRUCT_OPS_SLEEPABLE(select_cpu_vtime_init)
 
 SEC(".struct_ops.link")
 struct sched_ext_ops select_cpu_vtime_ops = {
-       .select_cpu             = select_cpu_vtime_select_cpu,
-       .dispatch               = select_cpu_vtime_dispatch,
-       .running                = select_cpu_vtime_running,
-       .stopping               = select_cpu_vtime_stopping,
-       .enable                 = select_cpu_vtime_enable,
-       .init                   = select_cpu_vtime_init,
+       .select_cpu             = (void *) select_cpu_vtime_select_cpu,
+       .dispatch               = (void *) select_cpu_vtime_dispatch,
+       .running                = (void *) select_cpu_vtime_running,
+       .stopping               = (void *) select_cpu_vtime_stopping,
+       .enable                 = (void *) select_cpu_vtime_enable,
+       .init                   = (void *) select_cpu_vtime_init,
        .name                   = "select_cpu_vtime",
        .timeout_ms             = 1000U,
 };