* [REGRESSION] stable-rc/linux-6.6.y: (build)in expansion of macro ‘container_of’ in drivers/net/ethernet/ti/cps...
@ 2026-09-17 13:59 KernelCI bot
2026-09-18 19:45 ` Sasha Levin
0 siblings, 1 reply; 3+ messages in thread
From: KernelCI bot @ 2026-09-17 13:59 UTC (permalink / raw)
To: kernelci-results; +Cc: stable
New build issue found on stable-rc/linux-6.6.y:
---
in expansion of macro ‘container_of’ in drivers/net/ethernet/ti/cpsw.o (drivers/net/ethernet/ti/cpsw.c) [logspec:kbuild,kbuild.compiler.note]
---
Log excerpt:
=====================================================
/tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c:310:34: note: in expansion of macro ‘container_of’
310 | struct cpsw_priv *priv = container_of(work, struct cpsw_priv, rx_mode_work);
| ^~~~~~~~~~~~
/tmp/kci/linux/include/linux/compiler_types.h:415:27: error: expression in static assertion is not an integer
415 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/kci/linux/include/linux/build_bug.h:78:56: note: in definition of macro ‘__static_assert’
78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
| ^~~~
/tmp/kci/linux/include/linux/container_of.h:20:9: note: in expansion of macro ‘static_assert’
20 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~~~~~~~~~~~~
/tmp/kci/linux/include/linux/container_of.h:20:23: note: in expansion of macro ‘__same_type’
20 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~~~~~~~~~~
/tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c:310:34: note: in expansion of macro ‘container_of’
310 | struct cpsw_priv *priv = container_of(work, struct cpsw_priv, rx_mode_work);
| ^~~~~~~~~~~~
In file included from /tmp/kci/linux/include/uapi/linux/posix_types.h:5,
from /tmp/kci/linux/include/uapi/linux/types.h:14,
from /tmp/kci/linux/include/linux/types.h:6,
from /tmp/kci/linux/include/linux/kasan-checks.h:5,
from /tmp/kci/linux/include/asm-generic/rwonce.h:26,
from ./arch/arm/include/generated/asm/rwonce.h:1,
from /tmp/kci/linux/include/linux/compiler.h:262,
from /tmp/kci/linux/include/linux/array_size.h:5,
from /tmp/kci/linux/include/linux/kernel.h:16:
/tmp/kci/linux/include/linux/stddef.h:16:33: error: ‘struct cpsw_priv’ has no member named ‘rx_mode_work’
16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER)
| ^~~~~~~~~~~~~~~~~~
/tmp/kci/linux/include/linux/container_of.h:23:28: note: in expansion of macro ‘offsetof’
23 | ((type *)(__mptr - offsetof(type, member))); })
| ^~~~~~~~
/tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c:310:34: note: in expansion of macro ‘container_of’
310 | struct cpsw_priv *priv = container_of(work, struct cpsw_priv, rx_mode_work);
| ^~~~~~~~~~~~
/tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c: In function ‘cpsw_ndo_set_rx_mode’:
/tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c:352:28: error: ‘struct cpsw_priv’ has no member named ‘rx_mode_work’
352 | schedule_work(&priv->rx_mode_work);
| ^~
In file included from /tmp/kci/linux/include/linux/srcu.h:21,
from /tmp/kci/linux/include/linux/notifier.h:16,
from /tmp/kci/linux/include/linux/clk.h:14,
from /tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c:11:
/tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c: In function ‘cpsw_probe_dual_emac’:
/tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c:1466:28: error: ‘struct cpsw_priv’ has no member named ‘rx_mode_work’
1466 | INIT_WORK(&priv_sl2->rx_mode_work, cpsw_ndo_set_rx_mode_work);
| ^~
/tmp/kci/linux/include/linux/workqueue.h:288:30: note: in definition of macro ‘__INIT_WORK_KEY’
288 | __init_work((_work), _onstack); \
| ^~~~~
/tmp/kci/linux/include/linux/workqueue.h:303:9: note: in expansion of macro ‘__INIT_WORK’
303 | __INIT_WORK((_work), (_func), 0)
| ^~~~~~~~~~~
/tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c:1466:9: note: in expansion of macro ‘INIT_WORK’
1466 | INIT_WORK(&priv_sl2->rx_mode_work, cpsw_ndo_set_rx_mode_work);
| ^~~~~~~~~
/tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c:1466:28: error: ‘struct cpsw_priv’ has no member named ‘rx_mode_work’
1466 | INIT_WORK(&priv_sl2->rx_mode_work, cpsw_ndo_set_rx_mode_work);
| ^~
/tmp/kci/linux/include/linux/workqueue.h:289:18: note: in definition of macro ‘__INIT_WORK_KEY’
289 | (_work)->data = (atomic_long_t) WORK_DATA_INIT(); \
| ^~~~~
/tmp/kci/linux/include/linux/workqueue.h:303:9: note: in expansion of macro ‘__INIT_WORK’
303 | __INIT_WORK((_work), (_func), 0)
| ^~~~~~~~~~~
/tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c:1466:9: note: in expansion of macro ‘INIT_WORK’
1466 | INIT_WORK(&priv_sl2->rx_mode_work, cpsw_ndo_set_rx_mode_work);
| ^~~~~~~~~
/tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c:1466:28: error: ‘struct cpsw_priv’ has no member named ‘rx_mode_work’
1466 | INIT_WORK(&priv_sl2->rx_mode_work, cpsw_ndo_set_rx_mode_work);
| ^~
/tmp/kci/linux/include/linux/workqueue.h:290:34: note: in definition of macro ‘__INIT_WORK_KEY’
290 | INIT_LIST_HEAD(&(_work)->entry); \
| ^~~~~
/tmp/kci/linux/include/linux/workqueue.h:303:9: note: in expansion of macro ‘__INIT_WORK’
303 | __INIT_WORK((_work), (_func), 0)
| ^~~~~~~~~~~
/tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c:1466:9: note: in expansion of macro ‘INIT_WORK’
1466 | INIT_WORK(&priv_sl2->rx_mode_work, cpsw_ndo_set_rx_mode_work);
| ^~~~~~~~~
/tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c:1466:28: error: ‘struct cpsw_priv’ has no member named ‘rx_mode_work’
1466 | INIT_WORK(&priv_sl2->rx_mode_work, cpsw_ndo_set_rx_mode_work);
| ^~
/tmp/kci/linux/include/linux/workqueue.h:291:18: note: in definition of macro ‘__INIT_WORK_KEY’
291 | (_work)->func = (_func); \
| ^~~~~
/tmp/kci/linux/include/linux/workqueue.h:303:9: note: in expansion of macro ‘__INIT_WORK’
303 | __INIT_WORK((_work), (_func), 0)
| ^~~~~~~~~~~
/tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c:1466:9: note: in expansion of macro ‘INIT_WORK’
1466 | INIT_WORK(&priv_sl2->rx_mode_work, cpsw_ndo_set_rx_mode_work);
| ^~~~~~~~~
/tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c: In function ‘cpsw_probe’:
/tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c:1648:24: error: ‘struct cpsw_priv’ has no member named ‘rx_mode_work’
1648 | INIT_WORK(&priv->rx_mode_work, cpsw_ndo_set_rx_mode_work);
| ^~
/tmp/kci/linux/include/linux/workqueue.h:288:30: note: in definition of macro ‘__INIT_WORK_KEY’
288 | __init_work((_work), _onstack); \
| ^~~~~
/tmp/kci/linux/include/linux/workqueue.h:303:9: note: in expansion of macro ‘__INIT_WORK’
303 | __INIT_WORK((_work), (_func), 0)
| ^~~~~~~~~~~
/tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c:1648:9: note: in expansion of macro ‘INIT_WORK’
1648 | INIT_WORK(&priv->rx_mode_work, cpsw_ndo_set_rx_mode_work);
| ^~~~~~~~~
/tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c:1648:24: error: ‘struct cpsw_priv’ has no member named ‘rx_mode_work’
1648 | INIT_WORK(&priv->rx_mode_work, cpsw_ndo_set_rx_mode_work);
| ^~
/tmp/kci/linux/include/linux/workqueue.h:289:18: note: in definition of macro ‘__INIT_WORK_KEY’
289 | (_work)->data = (atomic_long_t) WORK_DATA_INIT(); \
| ^~~~~
/tmp/kci/linux/include/linux/workqueue.h:303:9: note: in expansion of macro ‘__INIT_WORK’
303 | __INIT_WORK((_work), (_func), 0)
| ^~~~~~~~~~~
/tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c:1648:9: note: in expansion of macro ‘INIT_WORK’
1648 | INIT_WORK(&priv->rx_mode_work, cpsw_ndo_set_rx_mode_work);
| ^~~~~~~~~
/tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c:1648:24: error: ‘struct cpsw_priv’ has no member named ‘rx_mode_work’
1648 | INIT_WORK(&priv->rx_mode_work, cpsw_ndo_set_rx_mode_work);
| ^~
/tmp/kci/linux/include/linux/workqueue.h:290:34: note: in definition of macro ‘__INIT_WORK_KEY’
290 | INIT_LIST_HEAD(&(_work)->entry); \
| ^~~~~
/tmp/kci/linux/include/linux/workqueue.h:303:9: note: in expansion of macro ‘__INIT_WORK’
303 | __INIT_WORK((_work), (_func), 0)
| ^~~~~~~~~~~
/tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c:1648:9: note: in expansion of macro ‘INIT_WORK’
1648 | INIT_WORK(&priv->rx_mode_work, cpsw_ndo_set_rx_mode_work);
| ^~~~~~~~~
/tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c:1648:24: error: ‘struct cpsw_priv’ has no member named ‘rx_mode_work’
1648 | INIT_WORK(&priv->rx_mode_work, cpsw_ndo_set_rx_mode_work);
| ^~
/tmp/kci/linux/include/linux/workqueue.h:291:18: note: in definition of macro ‘__INIT_WORK_KEY’
291 | (_work)->func = (_func); \
| ^~~~~
/tmp/kci/linux/include/linux/workqueue.h:303:9: note: in expansion of macro ‘__INIT_WORK’
303 | __INIT_WORK((_work), (_func), 0)
| ^~~~~~~~~~~
/tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c:1648:9: note: in expansion of macro ‘INIT_WORK’
1648 | INIT_WORK(&priv->rx_mode_work, cpsw_ndo_set_rx_mode_work);
| ^~~~~~~~~
/tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c: In function ‘cpsw_remove’:
/tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c:1766:17: error: implicit declaration of function ‘disable_work_sync’; did you mean ‘disable_irq_nosync’? [-Wimplicit-function-declaration]
1766 | disable_work_sync(&priv->rx_mode_work);
| ^~~~~~~~~~~~~~~~~
| disable_irq_nosync
/tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c:1766:40: error: ‘struct cpsw_priv’ has no member named ‘rx_mode_work’
1766 | disable_work_sync(&priv->rx_mode_work);
| ^~
=====================================================
When fixing this issue, please attribute this report according to the
patch submission rules:
Reported-by: kernelci.org bot <bot@kernelci.org>
For complete logs and details about the environment used, see the issue
on the KernelCI dashboard:
- dashboard: https://d.kernelci.org/i/maestro:90753278e76c487a72fba54a64fc3be4b1e64280
- giturl: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
- commit HEAD: 02cc578650bea44d7dbb965be9f8bfb13b1ea8de
# Builds where the incident occurred:
## multi_v7_defconfig on (arm):
- compiler: gcc-15
- config: None
- dashboard: https://d.kernelci.org/build/maestro:6aabea0ffc1857a999df0c27
#kernelci issue maestro:90753278e76c487a72fba54a64fc3be4b1e64280
--
This is an experimental report format. Please send feedback in!
Talk to us at kernelci@lists.linux.dev
Made with love by the KernelCI team - https://kernelci.org
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [REGRESSION] stable-rc/linux-6.6.y: (build)in expansion of macro ‘container_of’ in drivers/net/ethernet/ti/cps...
2026-09-17 13:59 [REGRESSION] stable-rc/linux-6.6.y: (build)in expansion of macro ‘container_of’ in drivers/net/ethernet/ti/cps KernelCI bot
@ 2026-09-18 19:45 ` Sasha Levin
2026-09-20 12:41 ` Kevin Hao
0 siblings, 1 reply; 3+ messages in thread
From: Sasha Levin @ 2026-09-18 19:45 UTC (permalink / raw)
To: kernelci-results; +Cc: Sasha Levin, stable, KernelCI bot, Kevin Hao
> /tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c:310:34: note: in expansion of macro 'container_of'
> 310 | struct cpsw_priv *priv = container_of(work, struct cpsw_priv, rx_mode_work);
> /tmp/kci/linux/include/linux/stddef.h:16:33: error: 'struct cpsw_priv' has no member named 'rx_mode_work'
The queue took 0b8c878d1173 ("net: cpsw: Execute ndo_set_rx_mode callback in a
work queue") without its sibling c0b5dc73a38f ("net: cpsw_new: Execute
ndo_set_rx_mode callback in a work queue"), which is the commit that adds
rx_mode_work to struct cpsw_priv. It is dropped from 6.12, 6.6 and 5.15 now.
Note that the cpsw.c half applies textually clean on all three trees on its own
and only fails at compile.
Kevin, could you send a backport of the pair for 6.12, 6.6 and 5.15? 6.6 and
5.15 have no disable_work_sync(), so those two need adapting. 6.1 and 5.10 do
not need it, the Fixes: commit 1767bb2d47b7 ("ipv6: mcast: Don't hold RTNL for
IPV6_ADD_MEMBERSHIP and MCAST_JOIN_GROUP.") is not there.
--
Thanks,
Sasha
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [REGRESSION] stable-rc/linux-6.6.y: (build)in expansion of macro ‘container_of’ in drivers/net/ethernet/ti/cps...
2026-09-18 19:45 ` Sasha Levin
@ 2026-09-20 12:41 ` Kevin Hao
0 siblings, 0 replies; 3+ messages in thread
From: Kevin Hao @ 2026-09-20 12:41 UTC (permalink / raw)
To: Sasha Levin; +Cc: kernelci-results, stable, KernelCI bot
[-- Attachment #1: Type: text/plain, Size: 1174 bytes --]
On Fri, Sep 18, 2026 at 03:45:40PM -0400, Sasha Levin wrote:
> > /tmp/kci/linux/drivers/net/ethernet/ti/cpsw.c:310:34: note: in expansion of macro 'container_of'
> > 310 | struct cpsw_priv *priv = container_of(work, struct cpsw_priv, rx_mode_work);
> > /tmp/kci/linux/include/linux/stddef.h:16:33: error: 'struct cpsw_priv' has no member named 'rx_mode_work'
>
> The queue took 0b8c878d1173 ("net: cpsw: Execute ndo_set_rx_mode callback in a
> work queue") without its sibling c0b5dc73a38f ("net: cpsw_new: Execute
> ndo_set_rx_mode callback in a work queue"), which is the commit that adds
> rx_mode_work to struct cpsw_priv. It is dropped from 6.12, 6.6 and 5.15 now.
> Note that the cpsw.c half applies textually clean on all three trees on its own
> and only fails at compile.
>
> Kevin, could you send a backport of the pair for 6.12, 6.6 and 5.15?
Sure.
Thanks,
Kevin
> 6.6 and
> 5.15 have no disable_work_sync(), so those two need adapting. 6.1 and 5.10 do
> not need it, the Fixes: commit 1767bb2d47b7 ("ipv6: mcast: Don't hold RTNL for
> IPV6_ADD_MEMBERSHIP and MCAST_JOIN_GROUP.") is not there.
>
> --
> Thanks,
> Sasha
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-09-20 12:41 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-17 13:59 [REGRESSION] stable-rc/linux-6.6.y: (build)in expansion of macro ‘container_of’ in drivers/net/ethernet/ti/cps KernelCI bot
2026-09-18 19:45 ` Sasha Levin
2026-09-20 12:41 ` Kevin Hao
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox