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

Geert Uytterhoeven
2021-08-10T12:13:19Z

On Fri, Jul 23, 2021 at 7:35 AM Uwe Kleine-König
<u.kleine-koenig@pengutronix.de> wrote:
> On Fri, Jul 23, 2021 at 03:09:44PM +1000, Stephen Rothwell wrote:
> > After merging the driver-core tree, today's linux-next build (arm
> > multi_v7_defconfig) failed like this:
> >
> > drivers/gpu/drm/drm_dp_aux_bus.c:106:13: error: initialization of 'void (*)(struct device *)' from incompatible pointer type 'int (*)(struct device *)' [-Werror=incompatible-pointer-types]
> > 106 | .remove = dp_aux_ep_remove,
> > | ^~~~~~~~~~~~~~~~
> > drivers/gpu/drm/drm_dp_aux_bus.c:106:13: note: (near initialization for 'dp_aux_bus_type.remove')
> >
> > Caused by commit
> >
> > aeb33699fc2c ("drm: Introduce the DP AUX bus")
> >
> > from the drm tree interacting with commit
> >
> > fc7a6209d571 ("bus: Make remove callback return void")
> >
> > from the driver-core tree.
> >
> > I applied the following merge fix patch.
> >
> > From: Stephen Rothwell <sfr@canb.auug.org.au>
> > Date: Fri, 23 Jul 2021 14:58:25 +1000
> > Subject: [PATCH] fix for "drm: Introduce the DP AUX bus"
> >
> > interaction with "bus: Make remove callback return void"
> >
> > Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
> > ---
> > drivers/gpu/drm/drm_dp_aux_bus.c | 5 +----
> > 1 file changed, 1 insertion(+), 4 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/drm_dp_aux_bus.c b/drivers/gpu/drm/drm_dp_aux_bus.c
> > index e49a70f3691b..298ea7a49591 100644
> > --- a/drivers/gpu/drm/drm_dp_aux_bus.c
> > +++ b/drivers/gpu/drm/drm_dp_aux_bus.c
> > @@ -67,9 +67,8 @@ static int dp_aux_ep_probe(struct device *dev)
> > *
> > * Calls through to the endpoint driver remove.
> > *
> > - * Return: 0 if no error or negative error code.
> > */
> > -static int dp_aux_ep_remove(struct device *dev)
> > +static void dp_aux_ep_remove(struct device *dev)
> > {
> > struct dp_aux_ep_driver *aux_ep_drv = to_dp_aux_ep_drv(dev->driver);
> > struct dp_aux_ep_device *aux_ep = to_dp_aux_ep_dev(dev);
> > @@ -77,8 +76,6 @@ static int dp_aux_ep_remove(struct device *dev)
> > if (aux_ep_drv->remove)
> > aux_ep_drv->remove(aux_ep);
> > dev_pm_domain_detach(dev, true);
> > -
> > - return 0;
> > }
>
> This looks right.
>
> Greg provided a tag containing fc7a6209d571 ("bus: Make remove callback
> return void") at
>
> git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git tags/bus_remove_return_void-5.15
>
> (see https://lore.kernel.org/lkml/YPkwQwf0dUKnGA7L@kroah.com).
>
> It would be great if this could be merged into the drm tree with the
> above diff squashed into the merge commit.

+1.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds