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

From: Daniel Vetter <[email-masked]>
Date: Tue, 11 Apr 2023 11:55:20 +0200

On Tue, Apr 11, 2023 at 02:38:12PM +1000, Stephen Rothwell wrote:
> Hi all,
> 
> After merging the driver-core tree, today's linux-next build (x86_64
> allmodconfig) failed like this:
> 
> In file included from include/linux/linkage.h:7,
>                  from include/linux/kernel.h:17,
>                  from drivers/accel/qaic/mhi_qaic_ctrl.c:4:
> drivers/accel/qaic/mhi_qaic_ctrl.c: In function 'mhi_qaic_ctrl_init':
> include/linux/export.h:27:22: error: passing argument 1 of 'class_create' from incompatible pointer type [-Werror=incompatible-pointer-types]
>    27 | #define THIS_MODULE (&__this_module)
>       |                     ~^~~~~~~~~~~~~~~
>       |                      |
>       |                      struct module *
> drivers/accel/qaic/mhi_qaic_ctrl.c:544:38: note: in expansion of macro 'THIS_MODULE'
>   544 |         mqc_dev_class = class_create(THIS_MODULE, MHI_QAIC_CTRL_DRIVER_NAME);
>       |                                      ^~~~~~~~~~~
> In file included from include/linux/device.h:31,
>                  from include/linux/mhi.h:9,
>                  from drivers/accel/qaic/mhi_qaic_ctrl.c:5:
> include/linux/device/class.h:229:54: note: expected 'const char *' but argument is of type 'struct module *'
>   229 | struct class * __must_check class_create(const char *name);
>       |                                          ~~~~~~~~~~~~^~~~
> drivers/accel/qaic/mhi_qaic_ctrl.c:544:25: error: too many arguments to function 'class_create'
>   544 |         mqc_dev_class = class_create(THIS_MODULE, MHI_QAIC_CTRL_DRIVER_NAME);
>       |                         ^~~~~~~~~~~~
> include/linux/device/class.h:229:29: note: declared here
>   229 | struct class * __must_check class_create(const char *name);
>       |                             ^~~~~~~~~~~~
> 
> Caused by commit
> 
>   1aaba11da9aa ("driver core: class: remove module * from class_create()")
> 
> interacting with commit
> 
>   566fc96198b4 ("accel/qaic: Add mhi_qaic_cntl")
> 
> from the drm tree.
> 
> I have applied the following merge fix patch for today.
> 
> From: Stephen Rothwell <[email-masked]>
> Date: Tue, 11 Apr 2023 14:16:57 +1000
> Subject: [PATCH] fixup for "driver core: class: remove module * from class_create()"
> 
> interacting with "accel/qaic: Add mhi_qaic_cntl"
> 
> Signed-off-by: Stephen Rothwell <[email-masked]>

Thanks for the fixup. Since Dave is out I've made a note about this in my
handover mail so it won't get lost in the drm-next merge window pull. I
don't think we need any other coordination than mention it in each pull to
Linus, topic tree seems overkill for this. Plus there's no way I can
untangle the drm tree anyway :-).
-Daniel

> ---
>  drivers/accel/qaic/mhi_qaic_ctrl.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/accel/qaic/mhi_qaic_ctrl.c b/drivers/accel/qaic/mhi_qaic_ctrl.c
> index 0c7e571f1f12..96db1580c72d 100644
> --- a/drivers/accel/qaic/mhi_qaic_ctrl.c
> +++ b/drivers/accel/qaic/mhi_qaic_ctrl.c
> @@ -541,7 +541,7 @@ int mhi_qaic_ctrl_init(void)
>  		return ret;
>  
>  	mqc_dev_major = ret;
> -	mqc_dev_class = class_create(THIS_MODULE, MHI_QAIC_CTRL_DRIVER_NAME);
> +	mqc_dev_class = class_create(MHI_QAIC_CTRL_DRIVER_NAME);
>  	if (IS_ERR(mqc_dev_class)) {
>  		ret = PTR_ERR(mqc_dev_class);
>  		goto unregister_chrdev;
> -- 
> 2.39.2
> 
> -- 
> Cheers,
> Stephen Rothwell

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch