aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/inet_frag.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/inet_frag.h')
-rw-r--r--include/net/inet_frag.h13
1 files changed, 6 insertions, 7 deletions
diff --git a/include/net/inet_frag.h b/include/net/inet_frag.h
index d9cc5bb64854..6f4930a0b660 100644
--- a/include/net/inet_frag.h
+++ b/include/net/inet_frag.h
@@ -53,11 +53,6 @@ struct inet_frag_bucket {
53 53
54struct inet_frags { 54struct inet_frags {
55 struct inet_frag_bucket hash[INETFRAGS_HASHSZ]; 55 struct inet_frag_bucket hash[INETFRAGS_HASHSZ];
56 /* This rwlock is a global lock (seperate per IPv4, IPv6 and
57 * netfilter). Important to keep this on a seperate cacheline.
58 * Its primarily a rebuild protection rwlock.
59 */
60 rwlock_t lock ____cacheline_aligned_in_smp;
61 56
62 struct work_struct frags_work; 57 struct work_struct frags_work;
63 unsigned int next_bucket; 58 unsigned int next_bucket;
@@ -66,8 +61,12 @@ struct inet_frags {
66 61
67 /* The first call to hashfn is responsible to initialize 62 /* The first call to hashfn is responsible to initialize
68 * rnd. This is best done with net_get_random_once. 63 * rnd. This is best done with net_get_random_once.
64 *
65 * rnd_seqlock is used to let hash insertion detect
66 * when it needs to re-lookup the hash chain to use.
69 */ 67 */
70 u32 rnd; 68 u32 rnd;
69 seqlock_t rnd_seqlock;
71 int qsize; 70 int qsize;
72 71
73 unsigned int (*hashfn)(const struct inet_frag_queue *); 72 unsigned int (*hashfn)(const struct inet_frag_queue *);
@@ -89,8 +88,8 @@ void inet_frags_exit_net(struct netns_frags *nf, struct inet_frags *f);
89void inet_frag_kill(struct inet_frag_queue *q, struct inet_frags *f); 88void inet_frag_kill(struct inet_frag_queue *q, struct inet_frags *f);
90void inet_frag_destroy(struct inet_frag_queue *q, struct inet_frags *f); 89void inet_frag_destroy(struct inet_frag_queue *q, struct inet_frags *f);
91struct inet_frag_queue *inet_frag_find(struct netns_frags *nf, 90struct inet_frag_queue *inet_frag_find(struct netns_frags *nf,
92 struct inet_frags *f, void *key, unsigned int hash) 91 struct inet_frags *f, void *key, unsigned int hash);
93 __releases(&f->lock); 92
94void inet_frag_maybe_warn_overflow(struct inet_frag_queue *q, 93void inet_frag_maybe_warn_overflow(struct inet_frag_queue *q,
95 const char *prefix); 94 const char *prefix);
96 95