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

Stephen Rothwell
2021-04-12T05:04:28Z

[-- Attachment #1: Type: text/plain, Size: 7391 bytes --]

Hi all,

After merging the net-next tree, today's linux-next build (x86_64
allmodconfig) failed like this:

In file included from include/asm-generic/bug.h:20,
from arch/x86/include/asm/bug.h:93,
from include/linux/bug.h:5,
from include/linux/mmdebug.h:5,
from include/linux/gfp.h:5,
from include/linux/umh.h:4,
from include/linux/kmod.h:9,
from net/bridge/netfilter/ebtables.c:14:
net/bridge/netfilter/ebtables.c: In function '__ebt_find_table':
net/bridge/netfilter/ebtables.c:1248:33: error: 'struct netns_xt' has no member named 'tables'
1248 | list_for_each_entry(t, &net->xt.tables[NFPROTO_BRIDGE], list) {
| ^
include/linux/kernel.h:708:26: note: in definition of macro 'container_of'
708 | void *__mptr = (void *)(ptr); \
| ^~~
include/linux/list.h:522:2: note: in expansion of macro 'list_entry'
522 | list_entry((ptr)->next, type, member)
| ^~~~~~~~~~
include/linux/list.h:628:13: note: in expansion of macro 'list_first_entry'
628 | for (pos = list_first_entry(head, typeof(*pos), member); \
| ^~~~~~~~~~~~~~~~
net/bridge/netfilter/ebtables.c:1248:2: note: in expansion of macro 'list_for_each_entry'
1248 | list_for_each_entry(t, &net->xt.tables[NFPROTO_BRIDGE], list) {
| ^~~~~~~~~~~~~~~~~~~
In file included from <command-line>:
net/bridge/netfilter/ebtables.c:1248:33: error: 'struct netns_xt' has no member named 'tables'
1248 | list_for_each_entry(t, &net->xt.tables[NFPROTO_BRIDGE], list) {
| ^
include/linux/compiler_types.h:300:9: note: in definition of macro '__compiletime_assert'
300 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:320:2: note: in expansion of macro '_compiletime_assert'
320 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/kernel.h:709:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
709 | BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
| ^~~~~~~~~~~~~~~~
include/linux/kernel.h:709:20: note: in expansion of macro '__same_type'
709 | BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
| ^~~~~~~~~~~
include/linux/list.h:511:2: note: in expansion of macro 'container_of'
511 | container_of(ptr, type, member)
| ^~~~~~~~~~~~
include/linux/list.h:522:2: note: in expansion of macro 'list_entry'
522 | list_entry((ptr)->next, type, member)
| ^~~~~~~~~~
include/linux/list.h:628:13: note: in expansion of macro 'list_first_entry'
628 | for (pos = list_first_entry(head, typeof(*pos), member); \
| ^~~~~~~~~~~~~~~~
net/bridge/netfilter/ebtables.c:1248:2: note: in expansion of macro 'list_for_each_entry'
1248 | list_for_each_entry(t, &net->xt.tables[NFPROTO_BRIDGE], list) {
| ^~~~~~~~~~~~~~~~~~~
net/bridge/netfilter/ebtables.c:1248:33: error: 'struct netns_xt' has no member named 'tables'
1248 | list_for_each_entry(t, &net->xt.tables[NFPROTO_BRIDGE], list) {
| ^
include/linux/compiler_types.h:300:9: note: in definition of macro '__compiletime_assert'
300 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:320:2: note: in expansion of macro '_compiletime_assert'
320 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/kernel.h:709:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
709 | BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
| ^~~~~~~~~~~~~~~~
include/linux/kernel.h:710:6: note: in expansion of macro '__same_type'
710 | !__same_type(*(ptr), void), \
| ^~~~~~~~~~~
include/linux/list.h:511:2: note: in expansion of macro 'container_of'
511 | container_of(ptr, type, member)
| ^~~~~~~~~~~~
include/linux/list.h:522:2: note: in expansion of macro 'list_entry'
522 | list_entry((ptr)->next, type, member)
| ^~~~~~~~~~
include/linux/list.h:628:13: note: in expansion of macro 'list_first_entry'
628 | for (pos = list_first_entry(head, typeof(*pos), member); \
| ^~~~~~~~~~~~~~~~
net/bridge/netfilter/ebtables.c:1248:2: note: in expansion of macro 'list_for_each_entry'
1248 | list_for_each_entry(t, &net->xt.tables[NFPROTO_BRIDGE], list) {
| ^~~~~~~~~~~~~~~~~~~
In file included from include/linux/preempt.h:11,
from include/linux/spinlock.h:51,
from include/linux/mmzone.h:8,
from include/linux/gfp.h:6,
from include/linux/umh.h:4,
from include/linux/kmod.h:9,
from net/bridge/netfilter/ebtables.c:14:
net/bridge/netfilter/ebtables.c:1248:33: error: 'struct netns_xt' has no member named 'tables'
1248 | list_for_each_entry(t, &net->xt.tables[NFPROTO_BRIDGE], list) {
| ^
include/linux/list.h:619:20: note: in definition of macro 'list_entry_is_head'
619 | (&pos->member == (head))
| ^~~~
net/bridge/netfilter/ebtables.c:1248:2: note: in expansion of macro 'list_for_each_entry'
1248 | list_for_each_entry(t, &net->xt.tables[NFPROTO_BRIDGE], list) {
| ^~~~~~~~~~~~~~~~~~~

Caused by commit

5b53951cfc85 ("netfilter: ebtables: use net_generic infra")

interacting with commit

7ee3c61dcd28 ("netfilter: bridge: add pre_exit hooks for ebtable unregistration")

from the netfilter tree.

I have applied the following merge fix patch for today:

From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Mon, 12 Apr 2021 14:58:20 +1000
Subject: [PATCH] merger fix for "netfilter: bridge: add pre_exit hooks for
ebtable unregistration"

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
net/bridge/netfilter/ebtables.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/net/bridge/netfilter/ebtables.c b/net/bridge/netfilter/ebtables.c
index bbc46149bbb2..96d789c8d1c7 100644
--- a/net/bridge/netfilter/ebtables.c
+++ b/net/bridge/netfilter/ebtables.c
@@ -1241,11 +1241,12 @@ int ebt_register_table(struct net *net, const struct ebt_table *input_table,

static struct ebt_table *__ebt_find_table(struct net *net, const char *name)
{
+ struct ebt_pernet *ebt_net = net_generic(net, ebt_pernet_id);
struct ebt_table *t;

mutex_lock(&ebt_mutex);

- list_for_each_entry(t, &net->xt.tables[NFPROTO_BRIDGE], list) {
+ list_for_each_entry(t, &ebt_net->tables, list) {
if (strcmp(t->name, name) == 0) {
mutex_unlock(&ebt_mutex);
return t;
--
2.30.2

--
Cheers,
Stephen Rothwell

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]