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

From: Kazlauskas, Nicholas
Date: Tue Jan 08 2019 - 09:01:54 EST


On 1/8/19 3:37 AM, Daniel Vetter wrote:
> On Tue, Jan 08, 2019 at 11:12:41AM +1100, Stephen Rothwell wrote:
>> Hi all,
>>
>> After merging the drm-misc tree, today's linux-next build (x86_64
>> allmodconfig) failed like this:
>>
>> drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c: In function 'amdgpu_dm_mode_config_init':
>> drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:1695:30: error: passing argument 1 of 'drm_atomic_private_obj_init' from incompatible pointer type [-Werror=incompatible-pointer-types]
>> drm_atomic_private_obj_init(&adev->dm.atomic_obj,
>> ^~~~~~~~~~~~~~~~~~~~
>> In file included from include/drm/drm_dp_mst_helper.h:27,
>> from drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h:46,
>> from drivers/gpu/drm/amd/amdgpu/amdgpu.h:57,
>> from drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:34:
>> include/drm/drm_atomic.h:437:53: note: expected 'struct drm_device *' but argument is of type 'struct drm_private_obj *'
>> void drm_atomic_private_obj_init(struct drm_device *dev,
>> ~~~~~~~~~~~~~~~~~~~^~~
>> drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:1696:9: error: passing argument 2 of 'drm_atomic_private_obj_init' from incompatible pointer type [-Werror=incompatible-pointer-types]
>> &state->base,
>> ^~~~~~~~~~~~
>> In file included from include/drm/drm_dp_mst_helper.h:27,
>> from drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h:46,
>> from drivers/gpu/drm/amd/amdgpu/amdgpu.h:57,
>> from drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:34:
>> include/drm/drm_atomic.h:438:30: note: expected 'struct drm_private_obj *' but argument is of type 'struct drm_private_state *'
>> struct drm_private_obj *obj,
>> ~~~~~~~~~~~~~~~~~~~~~~~~^~~
>> drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:1697:9: error: passing argument 3 of 'drm_atomic_private_obj_init' from incompatible pointer type [-Werror=incompatible-pointer-types]
>> &dm_atomic_state_funcs);
>> ^~~~~~~~~~~~~~~~~~~~~~
>> In file included from include/drm/drm_dp_mst_helper.h:27,
>> from drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h:46,
>> from drivers/gpu/drm/amd/amdgpu/amdgpu.h:57,
>> from drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:34:
>> include/drm/drm_atomic.h:439:32: note: expected 'struct drm_private_state *' but argument is of type 'struct drm_private_state_funcs *'
>> struct drm_private_state *state,
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
>> drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:1695:2: error: too few arguments to function 'drm_atomic_private_obj_init'
>> drm_atomic_private_obj_init(&adev->dm.atomic_obj,
>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>> In file included from include/drm/drm_dp_mst_helper.h:27,
>> from drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h:46,
>> from drivers/gpu/drm/amd/amdgpu/amdgpu.h:57,
>> from drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:34:
>> include/drm/drm_atomic.h:437:6: note: declared here
>> void drm_atomic_private_obj_init(struct drm_device *dev,
>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>>
>> Caused by commit
>>
>> b962a12050a3 ("drm/atomic: integrate modeset lock with private objects")
>>
>> interacting with commit
>>
>> eb3dc8978596 ("drm/amd/display: Use private obj helpers for dm_atomic_state")
>>
>> from Linus' tree (merged during the merge window).
>>
>> Its not obvious how to fix this up, so I have used the drm-misc tree
>> from next-20190107 for today.
>
> https://cgit.freedesktop.org/drm-tip/tree/fixups/drm-misc-next.patch?h=rerere-cache
>
> is the fixup you want. Should get baked into drm-next any moment, since
> the first drm-misc-next pull is already out.
> -Daniel
>
Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@xxxxxxx>

Thanks, that lines up with the other driver fixes that patch added.

I missed that series when I was developing the private state object
patch for amdgpu.

I'll still need to remove our extra lock since the objects now have
their own, but that can come later in another non-fixup patch.

Nicholas Kazlauskas