aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/net/netfilter/nft_set_pipapo.c
diff options
context:
space:
mode:
authorPeter Zijlstra <peterz@infradead.org>2020-07-08 11:38:59 +0200
committerPeter Zijlstra <peterz@infradead.org>2020-07-08 11:38:59 +0200
commitfaa2fd7cbad4609d06d7904c0a80cf2f8cd23678 (patch)
tree3a5bfcc8879b719aec97cb73ed6e020cde502546 /net/netfilter/nft_set_pipapo.c
parentsched/core: Remove mmdrop() definition (diff)
parentsched: Fix unreliable rseq cpu_id for new tasks (diff)
downloadwireguard-linux-faa2fd7cbad4609d06d7904c0a80cf2f8cd23678.tar.xz
wireguard-linux-faa2fd7cbad4609d06d7904c0a80cf2f8cd23678.zip
Merge branch 'sched/urgent'
Diffstat (limited to 'net/netfilter/nft_set_pipapo.c')
-rw-r--r--net/netfilter/nft_set_pipapo.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/net/netfilter/nft_set_pipapo.c b/net/netfilter/nft_set_pipapo.c
index 8b5acc6910fd..8c04388296b0 100644
--- a/net/netfilter/nft_set_pipapo.c
+++ b/net/netfilter/nft_set_pipapo.c
@@ -1242,7 +1242,9 @@ static int nft_pipapo_insert(const struct net *net, const struct nft_set *set,
end += NFT_PIPAPO_GROUPS_PADDED_SIZE(f);
}
- if (!*this_cpu_ptr(m->scratch) || bsize_max > m->bsize_max) {
+ if (!*get_cpu_ptr(m->scratch) || bsize_max > m->bsize_max) {
+ put_cpu_ptr(m->scratch);
+
err = pipapo_realloc_scratch(m, bsize_max);
if (err)
return err;
@@ -1250,6 +1252,8 @@ static int nft_pipapo_insert(const struct net *net, const struct nft_set *set,
this_cpu_write(nft_pipapo_scratch_index, false);
m->bsize_max = bsize_max;
+ } else {
+ put_cpu_ptr(m->scratch);
}
*ext2 = &e->ext;