Subject: Re: [Intel-gfx] linux-next: build failure after merge of the drm tree

From: Rodrigo Vivi <[email-masked]>
Date: Thu, 19 Jan 2023 17:15:42 -0500

On Thu, Jan 19, 2023 at 01:12:22PM +1100, Stephen Rothwell wrote:
> Hi all,
> 
> After merging the drm tree, today's linux-next build (x86_64 allmodconfig)
> failed like this:
> 
> In file included from drivers/gpu/drm/drm_fb_helper.c:33:
> drivers/gpu/drm/drm_fb_helper.c: In function 'drm_fb_helper_single_fb_probe':
> drivers/gpu/drm/drm_fb_helper.c:1968:24: error: 'dev' undeclared (first use in this function); did you mean 'cdev'?

It's a silent conflict of

cff84bac9922 ("drm/fh-helper: Split fbdev single-probe helper")
with
d1d5101452ab ("drm/fb-helper: Set framebuffer for vga-switcheroo clients")

The resolution is to reintroduce the dev declaration there in
drm_fb_helper_single_fb_probe()

+	struct drm_device *dev = fb_helper->dev;

I hope it helps.
Thanks,
Rodrigo.

>  1968 |         if (dev_is_pci(dev->dev))
>       |                        ^~~
> include/linux/pci.h:1151:25: note: in definition of macro 'dev_is_pci'
>  1151 | #define dev_is_pci(d) ((d)->bus == &pci_bus_type)
>       |                         ^
> drivers/gpu/drm/drm_fb_helper.c:1968:24: note: each undeclared identifier is reported only once for each function it appears in
>  1968 |         if (dev_is_pci(dev->dev))
>       |                        ^~~
> include/linux/pci.h:1151:25: note: in definition of macro 'dev_is_pci'
>  1151 | #define dev_is_pci(d) ((d)->bus == &pci_bus_type)
>       |                         ^
> In file included from include/linux/atomic/atomic-instrumented.h:20,
>                  from include/linux/atomic.h:82,
>                  from include/linux/console.h:17,
>                  from drivers/gpu/drm/drm_fb_helper.c:32:
> include/linux/compiler_types.h:299:27: error: expression in static assertion is not an integer
>   299 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
>       |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert'
>    78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
>       |                                                        ^~~~
> include/linux/container_of.h:20:9: note: in expansion of macro 'static_assert'
>    20 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
>       |         ^~~~~~~~~~~~~
> include/linux/container_of.h:20:23: note: in expansion of macro '__same_type'
>    20 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
>       |                       ^~~~~~~~~~~
> include/linux/pci.h:541:23: note: in expansion of macro 'container_of'
>   541 | #define to_pci_dev(n) container_of(n, struct pci_dev, dev)
>       |                       ^~~~~~~~~~~~
> drivers/gpu/drm/drm_fb_helper.c:1969:46: note: in expansion of macro 'to_pci_dev'
>  1969 |                 vga_switcheroo_client_fb_set(to_pci_dev(dev->dev), fb_helper->info);
>       |                                              ^~~~~~~~~~
> 
> Caused by commit
> 
>   cff84bac9922 ("drm/fh-helper: Split fbdev single-probe helper")
> 
> interacting with commit
> 
>   d1d5101452ab ("drm/fb-helper: Set framebuffer for vga-switcheroo clients")
> 
> from the drm-misc-fixes tree.
> 
> I have added the following merge fix patch.
> 
> From: Stephen Rothwell <[email-masked]>
> Date: Thu, 19 Jan 2023 12:42:56 +1100
> Subject: [PATCH] fix up for "drm/fb-helper: Set framebuffer for vga-switcheroo clients"
> 
> Signed-off-by: Stephen Rothwell <[email-masked]>
> ---
>  drivers/gpu/drm/drm_fb_helper.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> index 97049a26fca2..5e445c61252d 100644
> --- a/drivers/gpu/drm/drm_fb_helper.c
> +++ b/drivers/gpu/drm/drm_fb_helper.c
> @@ -1942,6 +1942,7 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
>  					 int preferred_bpp)
>  {
>  	struct drm_client_dev *client = &fb_helper->client;
> +	struct drm_device *dev = fb_helper->dev;
>  	struct drm_fb_helper_surface_size sizes;
>  	int ret;
>  
> -- 
> 2.35.1
> 
> -- 
> Cheers,
> Stephen Rothwell