Subject: Re: linux-next: build failure after merge of the drm-misc tree

From: Maarten Lankhorst <[email-masked]>
Date: Wed, 10 Feb 2021 15:31:03 +0100

Op 2021-02-10 om 04:11 schreef Stephen Rothwell:
> Hi all,
>
> After merging the drm-misc tree, today's linux-next build (x86_64
> allmodconfig) failed like this:
>
> drivers/gpu/drm/v3d/v3d_sched.c:263:1: error: return type is an incomplete type
>   263 | v3d_gpu_reset_for_timeout(struct v3d_dev *v3d, struct drm_sched_job *sched_job)
>       | ^~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/gpu/drm/v3d/v3d_sched.c: In function 'v3d_gpu_reset_for_timeout':
> drivers/gpu/drm/v3d/v3d_sched.c:289:9: error: 'return' with a value, in function returning void [-Werror=return-type]
>   289 |  return DRM_GPU_SCHED_STAT_NOMINAL;
>       |         ^~~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/gpu/drm/v3d/v3d_sched.c:263:1: note: declared here
>   263 | v3d_gpu_reset_for_timeout(struct v3d_dev *v3d, struct drm_sched_job *sched_job)
>       | ^~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/gpu/drm/v3d/v3d_sched.c: At top level:
> drivers/gpu/drm/v3d/v3d_sched.c:298:1: error: return type is an incomplete type
>   298 | v3d_cl_job_timedout(struct drm_sched_job *sched_job, enum v3d_queue q,
>       | ^~~~~~~~~~~~~~~~~~~
> drivers/gpu/drm/v3d/v3d_sched.c: In function 'v3d_cl_job_timedout':
> drivers/gpu/drm/v3d/v3d_sched.c:309:10: error: 'return' with a value, in function returning void [-Werror=return-type]
>   309 |   return DRM_GPU_SCHED_STAT_NOMINAL;
>       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/gpu/drm/v3d/v3d_sched.c:298:1: note: declared here
>   298 | v3d_cl_job_timedout(struct drm_sched_job *sched_job, enum v3d_queue q,
>       | ^~~~~~~~~~~~~~~~~~~
> drivers/gpu/drm/v3d/v3d_sched.c: At top level:
> drivers/gpu/drm/v3d/v3d_sched.c:316:1: error: return type is an incomplete type
>   316 | v3d_bin_job_timedout(struct drm_sched_job *sched_job)
>       | ^~~~~~~~~~~~~~~~~~~~
> drivers/gpu/drm/v3d/v3d_sched.c:325:1: error: return type is an incomplete type
>   325 | v3d_render_job_timedout(struct drm_sched_job *sched_job)
>       | ^~~~~~~~~~~~~~~~~~~~~~~
> drivers/gpu/drm/v3d/v3d_sched.c:334:1: error: return type is an incomplete type
>   334 | v3d_generic_job_timedout(struct drm_sched_job *sched_job)
>       | ^~~~~~~~~~~~~~~~~~~~~~~~
> drivers/gpu/drm/v3d/v3d_sched.c:342:1: error: return type is an incomplete type
>   342 | v3d_csd_job_timedout(struct drm_sched_job *sched_job)
>       | ^~~~~~~~~~~~~~~~~~~~
> drivers/gpu/drm/v3d/v3d_sched.c: In function 'v3d_csd_job_timedout':
> drivers/gpu/drm/v3d/v3d_sched.c:353:10: error: 'return' with a value, in function returning void [-Werror=return-type]
>   353 |   return DRM_GPU_SCHED_STAT_NOMINAL;
>       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/gpu/drm/v3d/v3d_sched.c:342:1: note: declared here
>   342 | v3d_csd_job_timedout(struct drm_sched_job *sched_job)
>       | ^~~~~~~~~~~~~~~~~~~~
> drivers/gpu/drm/v3d/v3d_sched.c: At top level:
> drivers/gpu/drm/v3d/v3d_sched.c:362:18: error: initialization of 'enum drm_gpu_sched_stat (*)(struct drm_sched_job *)' from incompatible pointer type 'void (*)(struct drm_sched_job *)' [-Werror=incompatible-pointer-types]
>   362 |  .timedout_job = v3d_bin_job_timedout,
>       |                  ^~~~~~~~~~~~~~~~~~~~
> drivers/gpu/drm/v3d/v3d_sched.c:362:18: note: (near initialization for 'v3d_bin_sched_ops.timedout_job')
> drivers/gpu/drm/v3d/v3d_sched.c:369:18: error: initialization of 'enum drm_gpu_sched_stat (*)(struct drm_sched_job *)' from incompatible pointer type 'void (*)(struct drm_sched_job *)' [-Werror=incompatible-pointer-types]
>   369 |  .timedout_job = v3d_render_job_timedout,
>       |                  ^~~~~~~~~~~~~~~~~~~~~~~
> drivers/gpu/drm/v3d/v3d_sched.c:369:18: note: (near initialization for 'v3d_render_sched_ops.timedout_job')
> drivers/gpu/drm/v3d/v3d_sched.c:376:18: error: initialization of 'enum drm_gpu_sched_stat (*)(struct drm_sched_job *)' from incompatible pointer type 'void (*)(struct drm_sched_job *)' [-Werror=incompatible-pointer-types]
>   376 |  .timedout_job = v3d_generic_job_timedout,
>       |                  ^~~~~~~~~~~~~~~~~~~~~~~~
> drivers/gpu/drm/v3d/v3d_sched.c:376:18: note: (near initialization for 'v3d_tfu_sched_ops.timedout_job')
> drivers/gpu/drm/v3d/v3d_sched.c:383:18: error: initialization of 'enum drm_gpu_sched_stat (*)(struct drm_sched_job *)' from incompatible pointer type 'void (*)(struct drm_sched_job *)' [-Werror=incompatible-pointer-types]
>   383 |  .timedout_job = v3d_csd_job_timedout,
>       |                  ^~~~~~~~~~~~~~~~~~~~
> drivers/gpu/drm/v3d/v3d_sched.c:383:18: note: (near initialization for 'v3d_csd_sched_ops.timedout_job')
> drivers/gpu/drm/v3d/v3d_sched.c:390:18: error: initialization of 'enum drm_gpu_sched_stat (*)(struct drm_sched_job *)' from incompatible pointer type 'void (*)(struct drm_sched_job *)' [-Werror=incompatible-pointer-types]
>   390 |  .timedout_job = v3d_generic_job_timedout,
>       |                  ^~~~~~~~~~~~~~~~~~~~~~~~
> drivers/gpu/drm/v3d/v3d_sched.c:390:18: note: (near initialization for 'v3d_cache_clean_sched_ops.timedout_job')
>
> Caused by commit
>
>   c10983e14e8f ("drm/scheduler: Job timeout handler returns status (v3)")
>
> I have used the drm-misc tree from next-20210209 for today.
>
Hey,

I reverted the commit in drm-misc-next-fixes. It should be good now. :)

I must have accidentally cherry picked it when grabbing all fixes.

~Maarten