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

From: Sakari Ailus <[email-masked]>
Date: Tue, 9 Jul 2024 15:09:32 +0000

Hi Stephen,

Thanks for the patch.

On Tue, Jul 09, 2024 at 04:37:15PM +1000, Stephen Rothwell wrote:
> Hi all,
> 
> After merging the driver-core tree, today's linux-next build (x86_64
> allmodconfig) failed like this:
> 
> drivers/media/platform/raspberrypi/pisp_be/pisp_be.c:1786:27: error: initialization of 'void (*)(struct platform_device *)' from incompatible pointer type 'int (*)(struct platform_device *)' [-Werror=incompatible-pointer-types]
>  1786 |         .remove         = pispbe_remove,
>       |                           ^~~~~~~~~~~~~
> drivers/media/platform/raspberrypi/pisp_be/pisp_be.c:1786:27: note: (near initialization for 'pispbe_pdrv.<anonymous>.remove')
> cc1: all warnings being treated as errors
> 
> Caused by commit
> 
>   0edb555a65d1 ("platform: Make platform_driver::remove() return void")
> 
> interacting withc commit
> 
>   12187bd5d4f8 ("media: raspberrypi: Add support for PiSP BE")
> 
> from the vl4-dvb-next tree.
> 
> I have applied the following fix up patch.
> 
> From: Stephen Rothwell <[email-masked]>
> Date: Tue, 9 Jul 2024 16:03:05 +1000
> Subject: [PATCH] fix up for "platform: Make platform_driver::remove() return void"
> 
> interacting with commit
> 
>   12187bd5d4f8 ("media: raspberrypi: Add support for PiSP BE")
> 
> from the v4l-dvb-next tree.
> 
> Signed-off-by: Stephen Rothwell <[email-masked]>
> ---
>  drivers/media/platform/raspberrypi/pisp_be/pisp_be.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/drivers/media/platform/raspberrypi/pisp_be/pisp_be.c b/drivers/media/platform/raspberrypi/pisp_be/pisp_be.c
> index e74df5b116dc..7596ae1f7de6 100644
> --- a/drivers/media/platform/raspberrypi/pisp_be/pisp_be.c
> +++ b/drivers/media/platform/raspberrypi/pisp_be/pisp_be.c
> @@ -1756,7 +1756,7 @@ static int pispbe_probe(struct platform_device *pdev)
>  	return ret;
>  }
>  
> -static int pispbe_remove(struct platform_device *pdev)
> +static void pispbe_remove(struct platform_device *pdev)

While this approach works when the patch is squashed to commit
0edb555a65d1, it's better to also use the remove_new op as its return type
won't be changed. That can be merged independently of commit 0edb555a65d1.

Feel free to submit v2, I can post a modified patch as well.

Thanks.

>  {
>  	struct pispbe_dev *pispbe = platform_get_drvdata(pdev);
>  
> @@ -1765,8 +1765,6 @@ static int pispbe_remove(struct platform_device *pdev)
>  	pispbe_runtime_suspend(pispbe->dev);
>  	pm_runtime_dont_use_autosuspend(pispbe->dev);
>  	pm_runtime_disable(pispbe->dev);
> -
> -	return 0;
>  }
>  
>  static const struct dev_pm_ops pispbe_pm_ops = {

-- 
Kind regards,

Sakari Ailus