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

From: Icenowy Zheng

Date: Mon May 25 2026 - 11:28:58 EST


在 2026-05-25一的 16:02 +0100,Mark Brown写道:
> Hi all,
>
> After merging the drm-misc tree, today's linux-next build (x86_64
> allmodconfig) failed like this:
>
> /tmp/next/build/drivers/gpu/drm/verisilicon/vs_cursor_plane.c:43:48:
> error: 'struct drm_atomic_state' declared inside parameter list will
> not be visible outside of this definition or declaration [-Werror]
>    43 |                                         struct
> drm_atomic_state *state)

Oops, I put the patch for too long time that the behavior changed.

I'm going to fix this.

Thanks,
Icenowy

>       |                                               
> ^~~~~~~~~~~~~~~~
> /tmp/next/build/drivers/gpu/drm/verisilicon/vs_cursor_plane.c:
> In function 'vs_cursor_plane_atomic_check':
> /tmp/next/build/drivers/gpu/drm/verisilicon/vs_cursor_plane.c:45:82:
> error: passing argument 1 of 'drm_atomic_get_new_plane_state' from
> incompatible pointer type [-Wincompatible-pointer-types]
>    45 |         struct drm_plane_state *new_plane_state =
> drm_atomic_get_new_plane_state(state,
>      
> |                                                                    
>               ^~~~~
>      
> |                                                                    
>               |
>      
> |                                                                    
>               struct
>      
> |                                                                    
>               drm_atomic_state
>      
> |                                                                    
>               *
> In file included from
> /tmp/next/build/drivers/gpu/drm/verisilicon/vs_cursor_plane.c:12:
> /tmp/next/build/include/drm/drm_atomic.h:824:64: note: expected
> 'const struct drm_atomic_commit *' but argument is of type 'struct
> drm_atomic_state *'
>   824 | drm_atomic_get_new_plane_state(const struct drm_atomic_commit
> *state,
>       |                               
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
> /tmp/next/build/drivers/gpu/drm/verisilicon/vs_cursor_plane.c:55:60:
> error: passing argument 1 of 'drm_atomic_get_new_crtc_state' from
> incompatible pointer type [-Wincompatible-pointer-types]
>    55 |                 crtc_state =
> drm_atomic_get_new_crtc_state(state, crtc);
>       |                                                           
> ^~~~~
>       |                                                            |
> struct
>       |                                                           
> drm_atomic_state
>       |                                                            *
> /tmp/next/build/include/drm/drm_atomic.h:794:63: note: expected
> 'const struct drm_atomic_commit *' but argument is of type 'struct
> drm_atomic_state *'
>   794 | drm_atomic_get_new_crtc_state(const struct drm_atomic_commit
> *state,
>       |                              
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
> /tmp/next/build/drivers/gpu/drm/verisilicon/vs_cursor_plane.c:
> At top level:
> /tmp/next/build/drivers/gpu/drm/verisilicon/vs_cursor_plane.c:101:51:
> error: 'struct drm_atomic_state' declared inside parameter list will
> not be visible outside of this definition or declaration [-Werror]
>   101 |                                            struct
> drm_atomic_state *atomic_state)
>       |                                                  
> ^~~~~~~~~~~~~~~~
> /tmp/next/build/drivers/gpu/drm/verisilicon/vs_cursor_plane.c:
> In function 'vs_cursor_plane_atomic_enable':
> /tmp/next/build/drivers/gpu/drm/verisilicon/vs_cursor_plane.c:103:72:
> error: passing argument 1 of 'drm_atomic_get_new_plane_state' from
> incompatible pointer type [-Wincompatible-pointer-types]
>   103 |         struct drm_plane_state *state =
> drm_atomic_get_new_plane_state(atomic_state,
>      
> |                                                                    
>     ^~~~~~~~~~~~
>      
> |                                                                    
>     |
>      
> |                                                                    
>     struct
>      
> |                                                                    
>     drm_atomic_state
>      
> |                                                                    
>     *
> /tmp/next/build/include/drm/drm_atomic.h:824:64: note: expected
> 'const struct drm_atomic_commit *' but argument is of type 'struct
> drm_atomic_state *'
>   824 | drm_atomic_get_new_plane_state(const struct drm_atomic_commit
> *state,
>       |                               
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
> /tmp/next/build/drivers/gpu/drm/verisilicon/vs_cursor_plane.c:
> At top level:
> /tmp/next/build/drivers/gpu/drm/verisilicon/vs_cursor_plane.c:118:52:
> error: 'struct drm_atomic_state' declared inside parameter list will
> not be visible outside of this definition or declaration [-Werror]
>   118 |                                             struct
> drm_atomic_state *atomic_state)
>       |                                                   
> ^~~~~~~~~~~~~~~~
> /tmp/next/build/drivers/gpu/drm/verisilicon/vs_cursor_plane.c:
> In function 'vs_cursor_plane_atomic_disable':
> /tmp/next/build/drivers/gpu/drm/verisilicon/vs_cursor_plane.c:120:72:
> error: passing argument 1 of 'drm_atomic_get_old_plane_state' from
> incompatible pointer type [-Wincompatible-pointer-types]
>   120 |         struct drm_plane_state *state =
> drm_atomic_get_old_plane_state(atomic_state,
>      
> |                                                                    
>     ^~~~~~~~~~~~
>      
> |                                                                    
>     |
>      
> |                                                                    
>     struct
>      
> |                                                                    
>     drm_atomic_state
>      
> |                                                                    
>     *
> /tmp/next/build/include/drm/drm_atomic.h:809:64: note: expected
> 'const struct drm_atomic_commit *' but argument is of type 'struct
> drm_atomic_state *'
>   809 | drm_atomic_get_old_plane_state(const struct drm_atomic_commit
> *state,
>       |                               
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
> /tmp/next/build/drivers/gpu/drm/verisilicon/vs_cursor_plane.c:
> At top level:
> /tmp/next/build/drivers/gpu/drm/verisilicon/vs_cursor_plane.c:135:51:
> error: 'struct drm_atomic_state' declared inside parameter list will
> not be visible outside of this definition or declaration [-Werror]
>   135 |                                            struct
> drm_atomic_state *atomic_state)
>       |                                                  
> ^~~~~~~~~~~~~~~~
> /tmp/next/build/drivers/gpu/drm/verisilicon/vs_cursor_plane.c:
> In function 'vs_cursor_plane_atomic_update':
> /tmp/next/build/drivers/gpu/drm/verisilicon/vs_cursor_plane.c:137:72:
> error: passing argument 1 of 'drm_atomic_get_new_plane_state' from
> incompatible pointer type [-Wincompatible-pointer-types]
>   137 |         struct drm_plane_state *state =
> drm_atomic_get_new_plane_state(atomic_state,
>      
> |                                                                    
>     ^~~~~~~~~~~~
>      
> |                                                                    
>     |
>      
> |                                                                    
>     struct
>      
> |                                                                    
>     drm_atomic_state
>      
> |                                                                    
>     *
> /tmp/next/build/include/drm/drm_atomic.h:824:64: note: expected
> 'const struct drm_atomic_commit *' but argument is of type 'struct
> drm_atomic_state *'
>   824 | drm_atomic_get_new_plane_state(const struct drm_atomic_commit
> *state,
>       |                               
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
> /tmp/next/build/drivers/gpu/drm/verisilicon/vs_cursor_plane.c:147:55:
> error: passing argument 2 of 'vs_cursor_plane_atomic_disable' from
> incompatible pointer type [-Wincompatible-pointer-types]
>   147 |                 vs_cursor_plane_atomic_disable(plane,
> atomic_state);
>       |                                                      
> ^~~~~~~~~~~~
>       |                                                       |
> struct
>       |                                                      
> drm_atomic_state
>       |                                                       *
> /tmp/next/build/drivers/gpu/drm/verisilicon/vs_cursor_plane.c:118:70:
> note: expected 'struct drm_atomic_state *' but argument is of type
> 'struct drm_atomic_state *'
>   118 |                                             struct
> drm_atomic_state *atomic_state)
>       |                                            
> ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
> /tmp/next/build/drivers/gpu/drm/verisilicon/vs_cursor_plane.c:
> At top level:
> /tmp/next/build/drivers/gpu/drm/verisilicon/vs_cursor_plane.c:225:27:
> error: initialization of 'int (*)(struct drm_plane *, struct
> drm_atomic_commit *)' from incompatible pointer type 'int (*)(struct
> drm_plane *, struct drm_atomic_state *)' [-Wincompatible-pointer-
> types]
>   225 |         .atomic_check   = vs_cursor_plane_atomic_check,
>       |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /tmp/next/build/drivers/gpu/drm/verisilicon/vs_cursor_plane.c:225:27:
> note: (near initialization for
> 'vs_cursor_plane_helper_funcs.atomic_check')
> /tmp/next/build/drivers/gpu/drm/verisilicon/vs_cursor_plane.c:226:27:
> error: initialization of 'void (*)(struct drm_plane *, struct
> drm_atomic_commit *)' from incompatible pointer type 'void (*)(struct
> drm_plane *, struct drm_atomic_state *)' [-Wincompatible-pointer-
> types]
>   226 |         .atomic_update  = vs_cursor_plane_atomic_update,
>       |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /tmp/next/build/drivers/gpu/drm/verisilicon/vs_cursor_plane.c:226:27:
> note: (near initialization for
> 'vs_cursor_plane_helper_funcs.atomic_update')
> /tmp/next/build/drivers/gpu/drm/verisilicon/vs_cursor_plane.c:227:27:
> error: initialization of 'void (*)(struct drm_plane *, struct
> drm_atomic_commit *)' from incompatible pointer type 'void (*)(struct
> drm_plane *, struct drm_atomic_state *)' [-Wincompatible-pointer-
> types]
>   227 |         .atomic_enable  = vs_cursor_plane_atomic_enable,
>       |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /tmp/next/build/drivers/gpu/drm/verisilicon/vs_cursor_plane.c:227:27:
> note: (near initialization for
> 'vs_cursor_plane_helper_funcs.atomic_enable')
> /tmp/next/build/drivers/gpu/drm/verisilicon/vs_cursor_plane.c:228:27:
> error: initialization of 'void (*)(struct drm_plane *, struct
> drm_atomic_commit *)' from incompatible pointer type 'void (*)(struct
> drm_plane *, struct drm_atomic_state *)' [-Wincompatible-pointer-
> types]
>   228 |         .atomic_disable = vs_cursor_plane_atomic_disable,
>       |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /tmp/next/build/drivers/gpu/drm/verisilicon/vs_cursor_plane.c:228:27:
> note: (near initialization for
> 'vs_cursor_plane_helper_funcs.atomic_disable')
>
> Caused by commit
>
>   8c4ae21891255 (drm: verisilicon: add support for cursor planes)
>
> interacting with
>
>   5164f7e7ff8ec (drm: Rename struct drm_atomic_state to
> drm_atomic_commit)
>
> which appears to be an ancestor of the verisilicon commit.  I have
> used
> the version from next-20260522 instead.