summaryrefslogtreecommitdiffstats
path: root/net/ieee802154
diff options
context:
space:
mode:
authorFlorian Westphal <fw@strlen.de>2014-07-24 16:50:36 +0200
committerDavid S. Miller <davem@davemloft.net>2014-07-27 22:34:36 -0700
commitab1c724f633080ed2e8a0cfe61654599b55cf8f9 (patch)
tree215b28da3dc0fbbac8dd853501306f65b165a499 /net/ieee802154
parente3a57d18b06179d68fcf7a0a06ad844493c65e06 (diff)
downloadop-kernel-dev-ab1c724f633080ed2e8a0cfe61654599b55cf8f9.zip
op-kernel-dev-ab1c724f633080ed2e8a0cfe61654599b55cf8f9.tar.gz
inet: frag: use seqlock for hash rebuild
rehash is rare operation, don't force readers to take the read-side rwlock. Instead, we only have to detect the (rare) case where the secret was altered while we are trying to insert a new inetfrag queue into the table. If it was changed, drop the bucket lock and recompute the hash to get the 'new' chain bucket that we have to insert into. Joint work with Nikolay Aleksandrov. Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ieee802154')
-rw-r--r--net/ieee802154/reassembly.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/net/ieee802154/reassembly.c b/net/ieee802154/reassembly.c
index 20d2196..8da635d 100644
--- a/net/ieee802154/reassembly.c
+++ b/net/ieee802154/reassembly.c
@@ -124,7 +124,6 @@ fq_find(struct net *net, const struct lowpan_frag_info *frag_info,
arg.src = src;
arg.dst = dst;
- read_lock(&lowpan_frags.lock);
hash = lowpan_hash_frag(frag_info->d_tag, frag_info->d_size, src, dst);
q = inet_frag_find(&ieee802154_lowpan->frags,
OpenPOWER on IntegriCloud