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

From: Stephen Rothwell
Date: Wed Jul 18 2018 - 02:54:40 EST


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: pgpR3eCaRe4PU.pgp
Description: OpenPGP digital signature