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

Loic Poulain
2021-05-13T06:27:56Z

Hi Stephen,

On Thu, 13 May 2021 at 03:11, Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>
> Hi all,
>
> On Wed, 12 May 2021 09:54:18 +1000 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> >
> > On Wed, 12 May 2021 09:52:01 +1000 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> > >
> > > After merging the net-next tree, today's linux-next build (x86_64
> > > allmodconfig) failed like this:
> > >
> > > drivers/usb/class/cdc-wdm.c: In function 'wdm_wwan_port_stop':
> > > drivers/usb/class/cdc-wdm.c:858:2: error: implicit declaration of function 'kill_urbs' [-Werror=implicit-function-declaration]
> > > 858 | kill_urbs(desc);
> > > | ^~~~~~~~~
> > >
> > > Caused by commit
> > >
> > > cac6fb015f71 ("usb: class: cdc-wdm: WWAN framework integration")
> > >
> > > kill_urbs() was removed by commit
> > >
> > > 18abf8743674 ("cdc-wdm: untangle a circular dependency between callback and softint")
> > >
> > > Which is included in v5.13-rc1.
> >
> > Sorry, that commit is only in linux-next (from the usb.current tree).
> > I will do a merge fix up tomorrow - unless someone provides one.
> >
> > > I have used the net-next tree from next-20210511 for today.
>
> I have used the following merge fix patch for today. I don't know if
> this is sufficient (or even correct), but it does build.

Thanks for working on this.

>
> From: Stephen Rothwell <sfr@canb.auug.org.au>
> Date: Thu, 13 May 2021 11:04:09 +1000
> Subject: [PATCH] usb: class: cdc-wdm: fix for kill_urbs() removal
>
> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
> ---
> drivers/usb/class/cdc-wdm.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c
> index c88dcc4b6618..489b0e049402 100644
> --- a/drivers/usb/class/cdc-wdm.c
> +++ b/drivers/usb/class/cdc-wdm.c
> @@ -855,7 +855,7 @@ static void wdm_wwan_port_stop(struct wwan_port *port)
> struct wdm_device *desc = wwan_port_get_drvdata(port);
>
> /* Stop all transfers and disable WWAN mode */
> - kill_urbs(desc);
> + poison_urbs(desc);
> desc->manage_power(desc->intf, 0);
> clear_bit(WDM_READ, &desc->flags);
> clear_bit(WDM_WWAN_IN_USE, &desc->flags);

AFAIU, each poison call must be balanced with unpoison call.
So you probably want to call unpoison_urbs right here, similarly to
wdm_release or wdm_suspend.

Regards,
Loic

> --
> 2.30.2
>
> --
> Cheers,
> Stephen Rothwell