diff options
Diffstat (limited to 'include/net/inet_frag.h')
-rw-r--r-- | include/net/inet_frag.h | 13 |
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 | ||
54 | struct inet_frags { | 54 | struct 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); | |||
89 | void inet_frag_kill(struct inet_frag_queue *q, struct inet_frags *f); | 88 | void inet_frag_kill(struct inet_frag_queue *q, struct inet_frags *f); |
90 | void inet_frag_destroy(struct inet_frag_queue *q, struct inet_frags *f); | 89 | void inet_frag_destroy(struct inet_frag_queue *q, struct inet_frags *f); |
91 | struct inet_frag_queue *inet_frag_find(struct netns_frags *nf, | 90 | struct 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 | |
94 | void inet_frag_maybe_warn_overflow(struct inet_frag_queue *q, | 93 | void inet_frag_maybe_warn_overflow(struct inet_frag_queue *q, |
95 | const char *prefix); | 94 | const char *prefix); |
96 | 95 | ||