Hi Matthew, After merging the ida tree, today's linux-next build (x86_64 allmodconfig) failed like this: net/netfilter/nf_tables_api.c: In function 'nf_tables_set_alloc_name': net/netfilter/nf_tables_api.c:3014:8: error: implicit declaration of function 'ida_get_new_above'; did you mean 'idr_get_next_ul'? [-Werror=implicit-function-declaration] n = ida_get_new_above(&inuse, tmp, &id); ^~~~~~~~~~~~~~~~~ idr_get_next_ul Caused by commit 3f2668c1e101 ("ida: Remove old API") interacting with commit 9679150a0bd5 ("netfilter: nf_tables: Use id allocation") from the netfilter-next tree. I took a guess and applied the following merge fix patch. From: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> Date: Wed, 18 Jul 2018 16:42:26 +1000 Subject: [PATCH] ida: merge fix for ida_get_new_above() removal Signed-off-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> --- net/netfilter/nf_tables_api.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c index b7b5fbcda8dd..151b89174979 100644 --- a/net/netfilter/nf_tables_api.c +++ b/net/netfilter/nf_tables_api.c @@ -2995,7 +2995,7 @@ static int nf_tables_set_alloc_name(struct nft_ctx *ctx, struct nft_set *set, { const struct nft_set *i; const char *p; - unsigned int n = 0, id = 0; + int id = 0; DEFINE_IDA(inuse); p = strchr(name, '%'); @@ -3011,22 +3011,22 @@ static int nf_tables_set_alloc_name(struct nft_ctx *ctx, struct nft_set *set, if (!sscanf(i->name, name, &tmp)) continue; - n = ida_get_new_above(&inuse, tmp, &id); - if (n < 0) { - if (n == -EAGAIN) + id = ida_alloc_min(&inuse, tmp, GFP_KERNEL); + if (id < 0) { + if (id == -EAGAIN) return -ENOMEM; - return n; + return id; } } - n = ida_get_new_above(&inuse, 0, &id); + id = ida_alloc(&inuse, GFP_KERNEL); ida_destroy(&inuse); - if (n < 0) { - if (n == -EAGAIN) + if (id < 0) { + if (id == -EAGAIN) return -ENOMEM; - return n; + return id; } } -- Cheers, Stephen Rothwell
Attachment:
pgpvUQeij9mul.pgp
Description: OpenPGP digital signature