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

From: Stephen Rothwell <[email-masked]>
Date: Wed, 24 Jul 2024 09:11:23 +1000

Hi all,

On Fri, 28 Jun 2024 20:46:49 +0100 Mark Brown <[email-masked]> wrote:
> 
> After merging the drm tree and then some other trees which seem to have
> allowed the driver to be built much later in the merge process today's
> linux-next build (x86_64 allmodconfig) failed like this:
> 
> /tmp/next/build/drivers/gpu/drm/stm/lvds.c:1212:19: error: initialization of 'void (*)(struct platform_device *)' from incompatible pointer type 'int (*)(struct platform_device *)' [-Werror=incompatible-pointer-types]
>  1212 |         .remove = lvds_remove,
>       |                   ^~~~~~~~~~~
> /tmp/next/build/drivers/gpu/drm/stm/lvds.c:1212:19: note: (near initialization for 'lvds_platform_driver.<anonymous>.remove')
> 
> Caused by commit
> 
>   6597efcfc53585d5 ("drm/stm: Allow build with COMPILE_TEST=y")
> 
> interacting with
> 
>   aca1cbc1c9860e39 ("drm/stm: lvds: add new STM32 LVDS Display Interface Transmitter driver")
>   0edb555a65d1ef04 ("platform: Make platform_driver::remove() return void")
> 
> I have applied the below fixup patch.
> 
> From 59a5e11f41e93512ca1a5aed36c1c396d175797d Mon Sep 17 00:00:00 2001
> From: Mark Brown <[email-masked]>
> Date: Fri, 28 Jun 2024 20:45:16 +0100
> Subject: [PATCH] drm: Fix up STM LVDS driver for void remove() conversion
> 
> Signed-off-by: Mark Brown <[email-masked]>
> ---
>  drivers/gpu/drm/stm/lvds.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/stm/lvds.c b/drivers/gpu/drm/stm/lvds.c
> index bfc8cb13fbc5c..2fa2c81784e97 100644
> --- a/drivers/gpu/drm/stm/lvds.c
> +++ b/drivers/gpu/drm/stm/lvds.c
> @@ -1186,15 +1186,13 @@ static int lvds_probe(struct platform_device *pdev)
>  	return ret;
>  }
>  
> -static int lvds_remove(struct platform_device *pdev)
> +static void lvds_remove(struct platform_device *pdev)
>  {
>  	struct stm_lvds *lvds = platform_get_drvdata(pdev);
>  
>  	lvds_pixel_clk_unregister(lvds);
>  
>  	drm_bridge_remove(&lvds->lvds_bridge);
> -
> -	return 0;
>  }
>  
>  static const struct of_device_id lvds_dt_ids[] = {

This is now a conflict between the driver-core tree and Linus' tree.

-- 
Cheers,
Stephen Rothwell