Commit dbe5b4aaafc715b12dbbea309d3d17958d01fd65
Committed by
David S. Miller
1 parent
e695633e21
Exists in
master
and in
39 other branches
[IPSEC]: Kill unused decap state structure
This patch removes the *_decap_state structures which were previously used to share state between input/post_input. This is no longer needed. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
Showing 6 changed files with 19 additions and 33 deletions Side-by-side Diff
include/net/xfrm.h
... | ... | @@ -242,7 +242,6 @@ |
242 | 242 | |
243 | 243 | extern void xfrm_state_delete_tunnel(struct xfrm_state *x); |
244 | 244 | |
245 | -struct xfrm_decap_state; | |
246 | 245 | struct xfrm_type |
247 | 246 | { |
248 | 247 | char *description; |
249 | 248 | |
... | ... | @@ -606,25 +605,11 @@ |
606 | 605 | |
607 | 606 | extern void xfrm_dst_ifdown(struct dst_entry *dst, struct net_device *dev); |
608 | 607 | |
609 | -/* Decapsulation state, used by the input to store data during | |
610 | - * decapsulation procedure, to be used later (during the policy | |
611 | - * check | |
612 | - */ | |
613 | -struct xfrm_decap_state { | |
614 | - char decap_data[20]; | |
615 | - __u16 decap_type; | |
616 | -}; | |
617 | - | |
618 | -struct sec_decap_state { | |
619 | - struct xfrm_state *xvec; | |
620 | - struct xfrm_decap_state decap; | |
621 | -}; | |
622 | - | |
623 | 608 | struct sec_path |
624 | 609 | { |
625 | 610 | atomic_t refcnt; |
626 | 611 | int len; |
627 | - struct sec_decap_state x[XFRM_MAX_DEPTH]; | |
612 | + struct xfrm_state *xvec[XFRM_MAX_DEPTH]; | |
628 | 613 | }; |
629 | 614 | |
630 | 615 | static inline struct sec_path * |
net/ipv4/xfrm4_input.c
... | ... | @@ -68,7 +68,7 @@ |
68 | 68 | { |
69 | 69 | int err; |
70 | 70 | u32 spi, seq; |
71 | - struct sec_decap_state xfrm_vec[XFRM_MAX_DEPTH]; | |
71 | + struct xfrm_state *xfrm_vec[XFRM_MAX_DEPTH]; | |
72 | 72 | struct xfrm_state *x; |
73 | 73 | int xfrm_nr = 0; |
74 | 74 | int decaps = 0; |
... | ... | @@ -99,7 +99,6 @@ |
99 | 99 | if (xfrm_state_check_expire(x)) |
100 | 100 | goto drop_unlock; |
101 | 101 | |
102 | - xfrm_vec[xfrm_nr].decap.decap_type = encap_type; | |
103 | 102 | if (x->type->input(x, skb)) |
104 | 103 | goto drop_unlock; |
105 | 104 | |
... | ... | @@ -114,7 +113,7 @@ |
114 | 113 | |
115 | 114 | spin_unlock(&x->lock); |
116 | 115 | |
117 | - xfrm_vec[xfrm_nr++].xvec = x; | |
116 | + xfrm_vec[xfrm_nr++] = x; | |
118 | 117 | |
119 | 118 | iph = skb->nh.iph; |
120 | 119 | |
... | ... | @@ -156,7 +155,8 @@ |
156 | 155 | if (xfrm_nr + skb->sp->len > XFRM_MAX_DEPTH) |
157 | 156 | goto drop; |
158 | 157 | |
159 | - memcpy(skb->sp->x+skb->sp->len, xfrm_vec, xfrm_nr*sizeof(struct sec_decap_state)); | |
158 | + memcpy(skb->sp->xvec + skb->sp->len, xfrm_vec, | |
159 | + xfrm_nr * sizeof(xfrm_vec[0])); | |
160 | 160 | skb->sp->len += xfrm_nr; |
161 | 161 | |
162 | 162 | nf_reset(skb); |
... | ... | @@ -187,7 +187,7 @@ |
187 | 187 | xfrm_state_put(x); |
188 | 188 | drop: |
189 | 189 | while (--xfrm_nr >= 0) |
190 | - xfrm_state_put(xfrm_vec[xfrm_nr].xvec); | |
190 | + xfrm_state_put(xfrm_vec[xfrm_nr]); | |
191 | 191 | |
192 | 192 | kfree_skb(skb); |
193 | 193 | return 0; |
net/ipv6/xfrm6_input.c
... | ... | @@ -32,7 +32,7 @@ |
32 | 32 | { |
33 | 33 | int err; |
34 | 34 | u32 seq; |
35 | - struct sec_decap_state xfrm_vec[XFRM_MAX_DEPTH]; | |
35 | + struct xfrm_state *xfrm_vec[XFRM_MAX_DEPTH]; | |
36 | 36 | struct xfrm_state *x; |
37 | 37 | int xfrm_nr = 0; |
38 | 38 | int decaps = 0; |
... | ... | @@ -79,7 +79,7 @@ |
79 | 79 | |
80 | 80 | spin_unlock(&x->lock); |
81 | 81 | |
82 | - xfrm_vec[xfrm_nr++].xvec = x; | |
82 | + xfrm_vec[xfrm_nr++] = x; | |
83 | 83 | |
84 | 84 | if (x->props.mode) { /* XXX */ |
85 | 85 | if (nexthdr != IPPROTO_IPV6) |
... | ... | @@ -118,7 +118,8 @@ |
118 | 118 | if (xfrm_nr + skb->sp->len > XFRM_MAX_DEPTH) |
119 | 119 | goto drop; |
120 | 120 | |
121 | - memcpy(skb->sp->x+skb->sp->len, xfrm_vec, xfrm_nr*sizeof(struct sec_decap_state)); | |
121 | + memcpy(skb->sp->xvec + skb->sp->len, xfrm_vec, | |
122 | + xfrm_nr * sizeof(xfrm_vec[0])); | |
122 | 123 | skb->sp->len += xfrm_nr; |
123 | 124 | skb->ip_summed = CHECKSUM_NONE; |
124 | 125 | |
... | ... | @@ -149,7 +150,7 @@ |
149 | 150 | xfrm_state_put(x); |
150 | 151 | drop: |
151 | 152 | while (--xfrm_nr >= 0) |
152 | - xfrm_state_put(xfrm_vec[xfrm_nr].xvec); | |
153 | + xfrm_state_put(xfrm_vec[xfrm_nr]); | |
153 | 154 | kfree_skb(skb); |
154 | 155 | return -1; |
155 | 156 | } |
net/netfilter/xt_policy.c
net/xfrm/xfrm_input.c
... | ... | @@ -18,7 +18,7 @@ |
18 | 18 | { |
19 | 19 | int i; |
20 | 20 | for (i = 0; i < sp->len; i++) |
21 | - xfrm_state_put(sp->x[i].xvec); | |
21 | + xfrm_state_put(sp->xvec[i]); | |
22 | 22 | kmem_cache_free(secpath_cachep, sp); |
23 | 23 | } |
24 | 24 | EXPORT_SYMBOL(__secpath_destroy); |
... | ... | @@ -37,7 +37,7 @@ |
37 | 37 | |
38 | 38 | memcpy(sp, src, sizeof(*sp)); |
39 | 39 | for (i = 0; i < sp->len; i++) |
40 | - xfrm_state_hold(sp->x[i].xvec); | |
40 | + xfrm_state_hold(sp->xvec[i]); | |
41 | 41 | } |
42 | 42 | atomic_set(&sp->refcnt, 1); |
43 | 43 | return sp; |
net/xfrm/xfrm_policy.c
... | ... | @@ -943,9 +943,9 @@ |
943 | 943 | } else |
944 | 944 | start = -1; |
945 | 945 | for (; idx < sp->len; idx++) { |
946 | - if (xfrm_state_ok(tmpl, sp->x[idx].xvec, family)) | |
946 | + if (xfrm_state_ok(tmpl, sp->xvec[idx], family)) | |
947 | 947 | return ++idx; |
948 | - if (sp->x[idx].xvec->props.mode) | |
948 | + if (sp->xvec[idx]->props.mode) | |
949 | 949 | break; |
950 | 950 | } |
951 | 951 | return start; |
... | ... | @@ -968,7 +968,7 @@ |
968 | 968 | static inline int secpath_has_tunnel(struct sec_path *sp, int k) |
969 | 969 | { |
970 | 970 | for (; k < sp->len; k++) { |
971 | - if (sp->x[k].xvec->props.mode) | |
971 | + if (sp->xvec[k]->props.mode) | |
972 | 972 | return 1; |
973 | 973 | } |
974 | 974 | |
... | ... | @@ -994,8 +994,8 @@ |
994 | 994 | int i; |
995 | 995 | |
996 | 996 | for (i=skb->sp->len-1; i>=0; i--) { |
997 | - struct sec_decap_state *xvec = &(skb->sp->x[i]); | |
998 | - if (!xfrm_selector_match(&xvec->xvec->sel, &fl, family)) | |
997 | + struct xfrm_state *x = skb->sp->xvec[i]; | |
998 | + if (!xfrm_selector_match(&x->sel, &fl, family)) | |
999 | 999 | return 0; |
1000 | 1000 | } |
1001 | 1001 | } |