* [REGRESSION] 6.1.y/6.6.y: fsl-usb fails to build
@ 2026-08-27 15:43 Ralf Lici
2026-08-28 5:44 ` Greg Kroah-Hartman
0 siblings, 1 reply; 3+ messages in thread
From: Ralf Lici @ 2026-08-27 15:43 UTC (permalink / raw)
To: stable
Cc: regressions, Greg Kroah-Hartman, Ran Wang, Duoming Zhou,
linux-usb, linuxppc-dev, Ben Hutchings
Hi,
While working on some backport patches for an out-of-tree module and
looking for the exact versions containing the disable_delayed_work_sync
symbol, I stumbled upon occurrences of that function on longterm v6.1
and v6.6 in drivers/usb/phy/phy-fsl-usb.c despite not being declared or
defined anywhere. In fact, disable_delayed_work_sync was introduced by
upstream commit 86898fa6b8cd ("workqueue: Implement disable/enable for
(delayed) work items") and is only available since v6.10. Neither 6.1.y
nor 6.6.y defines it.
Consequently, kernels built with CONFIG_FSL_USB2_OTG fail with:
drivers/usb/phy/phy-fsl-usb.c:990:2: error: call to undeclared function 'disable_delayed_work_sync'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
990 | disable_delayed_work_sync(&fsl_otg_dev->otg_event);
| ^
drivers/usb/phy/phy-fsl-usb.c:990:2: note: did you mean 'cancel_delayed_work_sync'?
include/linux/workqueue.h:470:13: note: 'cancel_delayed_work_sync' declared here
470 | extern bool cancel_delayed_work_sync(struct delayed_work *dwork);
| ^
I reproduced the failure on PowerPC using corenet64_smp_defconfig with
CONFIG_FSL_USB2_OTG=m, building drivers/usb/phy/phy-fsl-usb.o with
Clang.
AFAICT, in 6.1.y, the regression was introduced in v6.1.160 by commit
4476c73bbbb0 ("usb: phy: fsl-usb: Fix use-after-free in delayed work
during device removal") and remains present in v6.1.185.
In 6.6.y, it was introduced in v6.6.120 by commit 319f7a85b3c4 ("usb:
phy: fsl-usb: Fix use-after-free in delayed work during device removal")
and remains present in v6.6.154.
Note that the same problem was pointed out by Ben Hutchings during the
5.10.y review:
https://lore.kernel.org/all/d147f0eb71f9cefbfb7605e95d98564d7f0ed346.camel@decadent.org.uk/
The corresponding patches were dropped from 5.10.y and 5.15.y, but
appear to have been retained in 6.1.y and 6.6.y.
Simply replacing disable_delayed_work_sync with cancel_delayed_work_sync
at its current location may not be sufficient: it looks like the delayed
work can also be scheduled from fsl_otg_set_host and from the IRQ
handler but I'm not familiar with this part of the kernel.
Cheers!
--
Ralf Lici
Mandelbit Srl
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [REGRESSION] 6.1.y/6.6.y: fsl-usb fails to build
2026-08-27 15:43 [REGRESSION] 6.1.y/6.6.y: fsl-usb fails to build Ralf Lici
@ 2026-08-28 5:44 ` Greg Kroah-Hartman
2026-08-28 7:05 ` Ralf Lici
0 siblings, 1 reply; 3+ messages in thread
From: Greg Kroah-Hartman @ 2026-08-28 5:44 UTC (permalink / raw)
To: Ralf Lici
Cc: stable, regressions, Ran Wang, Duoming Zhou, linux-usb,
linuxppc-dev, Ben Hutchings
On Thu, Aug 27, 2026 at 05:43:00PM +0200, Ralf Lici wrote:
> Hi,
>
> While working on some backport patches for an out-of-tree module and
> looking for the exact versions containing the disable_delayed_work_sync
> symbol, I stumbled upon occurrences of that function on longterm v6.1
> and v6.6 in drivers/usb/phy/phy-fsl-usb.c despite not being declared or
> defined anywhere. In fact, disable_delayed_work_sync was introduced by
> upstream commit 86898fa6b8cd ("workqueue: Implement disable/enable for
> (delayed) work items") and is only available since v6.10. Neither 6.1.y
> nor 6.6.y defines it.
>
> Consequently, kernels built with CONFIG_FSL_USB2_OTG fail with:
>
> drivers/usb/phy/phy-fsl-usb.c:990:2: error: call to undeclared function 'disable_delayed_work_sync'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
> 990 | disable_delayed_work_sync(&fsl_otg_dev->otg_event);
> | ^
> drivers/usb/phy/phy-fsl-usb.c:990:2: note: did you mean 'cancel_delayed_work_sync'?
> include/linux/workqueue.h:470:13: note: 'cancel_delayed_work_sync' declared here
> 470 | extern bool cancel_delayed_work_sync(struct delayed_work *dwork);
> | ^
>
> I reproduced the failure on PowerPC using corenet64_smp_defconfig with
> CONFIG_FSL_USB2_OTG=m, building drivers/usb/phy/phy-fsl-usb.o with
> Clang.
>
> AFAICT, in 6.1.y, the regression was introduced in v6.1.160 by commit
> 4476c73bbbb0 ("usb: phy: fsl-usb: Fix use-after-free in delayed work
> during device removal") and remains present in v6.1.185.
>
> In 6.6.y, it was introduced in v6.6.120 by commit 319f7a85b3c4 ("usb:
> phy: fsl-usb: Fix use-after-free in delayed work during device removal")
> and remains present in v6.6.154.
>
> Note that the same problem was pointed out by Ben Hutchings during the
> 5.10.y review:
> https://lore.kernel.org/all/d147f0eb71f9cefbfb7605e95d98564d7f0ed346.camel@decadent.org.uk/
>
> The corresponding patches were dropped from 5.10.y and 5.15.y, but
> appear to have been retained in 6.1.y and 6.6.y.
>
> Simply replacing disable_delayed_work_sync with cancel_delayed_work_sync
> at its current location may not be sufficient: it looks like the delayed
> work can also be scheduled from fsl_otg_set_host and from the IRQ
> handler but I'm not familiar with this part of the kernel.
Can you just send patches to revert the offending commits? Or we can
just ignore it as it's been this way for a while and no one has noticed
which implies to me that no one builds these modules for these arches on
these very old kernel trees :)
thanks,
greg k-h
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [REGRESSION] 6.1.y/6.6.y: fsl-usb fails to build
2026-08-28 5:44 ` Greg Kroah-Hartman
@ 2026-08-28 7:05 ` Ralf Lici
0 siblings, 0 replies; 3+ messages in thread
From: Ralf Lici @ 2026-08-28 7:05 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: stable, regressions, Ran Wang, Duoming Zhou, linux-usb,
linuxppc-dev, Ben Hutchings
On Fri, 28 Aug 2026 07:44:44 +0200, Greg Kroah-Hartman <gregkh@linuxfoundation.org> wrote:
> On Thu, Aug 27, 2026 at 05:43:00PM +0200, Ralf Lici wrote:
> > Hi,
> >
> > While working on some backport patches for an out-of-tree module and
> > looking for the exact versions containing the disable_delayed_work_sync
> > symbol, I stumbled upon occurrences of that function on longterm v6.1
> > and v6.6 in drivers/usb/phy/phy-fsl-usb.c despite not being declared or
> > defined anywhere. In fact, disable_delayed_work_sync was introduced by
> > upstream commit 86898fa6b8cd ("workqueue: Implement disable/enable for
> > (delayed) work items") and is only available since v6.10. Neither 6.1.y
> > nor 6.6.y defines it.
> >
> > Consequently, kernels built with CONFIG_FSL_USB2_OTG fail with:
> >
> > drivers/usb/phy/phy-fsl-usb.c:990:2: error: call to undeclared function 'disable_delayed_work_sync'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
> > 990 | disable_delayed_work_sync(&fsl_otg_dev->otg_event);
> > | ^
> > drivers/usb/phy/phy-fsl-usb.c:990:2: note: did you mean 'cancel_delayed_work_sync'?
> > include/linux/workqueue.h:470:13: note: 'cancel_delayed_work_sync' declared here
> > 470 | extern bool cancel_delayed_work_sync(struct delayed_work *dwork);
> > | ^
> >
> > I reproduced the failure on PowerPC using corenet64_smp_defconfig with
> > CONFIG_FSL_USB2_OTG=m, building drivers/usb/phy/phy-fsl-usb.o with
> > Clang.
> >
> > AFAICT, in 6.1.y, the regression was introduced in v6.1.160 by commit
> > 4476c73bbbb0 ("usb: phy: fsl-usb: Fix use-after-free in delayed work
> > during device removal") and remains present in v6.1.185.
> >
> > In 6.6.y, it was introduced in v6.6.120 by commit 319f7a85b3c4 ("usb:
> > phy: fsl-usb: Fix use-after-free in delayed work during device removal")
> > and remains present in v6.6.154.
> >
> > Note that the same problem was pointed out by Ben Hutchings during the
> > 5.10.y review:
> > https://lore.kernel.org/all/d147f0eb71f9cefbfb7605e95d98564d7f0ed346.camel@decadent.org.uk/
> >
> > The corresponding patches were dropped from 5.10.y and 5.15.y, but
> > appear to have been retained in 6.1.y and 6.6.y.
> >
> > Simply replacing disable_delayed_work_sync with cancel_delayed_work_sync
> > at its current location may not be sufficient: it looks like the delayed
> > work can also be scheduled from fsl_otg_set_host and from the IRQ
> > handler but I'm not familiar with this part of the kernel.
>
> Can you just send patches to revert the offending commits? Or we can
> just ignore it as it's been this way for a while and no one has noticed
> which implies to me that no one builds these modules for these arches on
> these very old kernel trees :)
>
Right, the lack of reports after roughly ten months suggests that nobody
is building these modules for the affected configurations. Still, I
would rather not knowingly leave those configurations unbuildable, so
I'll send revert patches shortly.
Thanks,
--
Ralf Lici
Mandelbit Srl
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-08-28 7:06 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-27 15:43 [REGRESSION] 6.1.y/6.6.y: fsl-usb fails to build Ralf Lici
2026-08-28 5:44 ` Greg Kroah-Hartman
2026-08-28 7:05 ` Ralf Lici
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.