diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2006-04-01 03:52:46 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2006-04-01 03:52:46 -0500 |
commit | e695633e21ffb6a443a8c2f8b3f095c7f1a48eb0 (patch) | |
tree | 52a679683a11eb42ec5888309a82ec5811a21e03 /net/ipv4 | |
parent | 15901dc93fa4253bfb3661644ecad67c2e83213c (diff) |
[IPSEC]: Kill unused decap state argument
This patch removes the decap_state argument from the xfrm input hook.
Previously this function allowed the input hook to share state with
the post_input hook. The latter has since been removed.
The only purpose for it now is to check the encap type. However, it
is easier and better to move the encap type check to the generic
xfrm_rcv function. This allows us to get rid of the decap state
argument altogether.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/ah4.c | 2 | ||||
-rw-r--r-- | net/ipv4/esp4.c | 5 | ||||
-rw-r--r-- | net/ipv4/ipcomp.c | 3 | ||||
-rw-r--r-- | net/ipv4/xfrm4_input.c | 5 | ||||
-rw-r--r-- | net/ipv4/xfrm4_tunnel.c | 2 |
5 files changed, 8 insertions, 9 deletions
diff --git a/net/ipv4/ah4.c b/net/ipv4/ah4.c index e16d8b42b953..e2e4771fa4c6 100644 --- a/net/ipv4/ah4.c +++ b/net/ipv4/ah4.c | |||
@@ -116,7 +116,7 @@ error: | |||
116 | return err; | 116 | return err; |
117 | } | 117 | } |
118 | 118 | ||
119 | static int ah_input(struct xfrm_state *x, struct xfrm_decap_state *decap, struct sk_buff *skb) | 119 | static int ah_input(struct xfrm_state *x, struct sk_buff *skb) |
120 | { | 120 | { |
121 | int ah_hlen; | 121 | int ah_hlen; |
122 | struct iphdr *iph; | 122 | struct iphdr *iph; |
diff --git a/net/ipv4/esp4.c b/net/ipv4/esp4.c index bf88c620a954..9d1881c07a32 100644 --- a/net/ipv4/esp4.c +++ b/net/ipv4/esp4.c | |||
@@ -133,7 +133,7 @@ error: | |||
133 | * expensive, so we only support truncated data, which is the recommended | 133 | * expensive, so we only support truncated data, which is the recommended |
134 | * and common case. | 134 | * and common case. |
135 | */ | 135 | */ |
136 | static int esp_input(struct xfrm_state *x, struct xfrm_decap_state *decap, struct sk_buff *skb) | 136 | static int esp_input(struct xfrm_state *x, struct sk_buff *skb) |
137 | { | 137 | { |
138 | struct iphdr *iph; | 138 | struct iphdr *iph; |
139 | struct ip_esp_hdr *esph; | 139 | struct ip_esp_hdr *esph; |
@@ -208,9 +208,6 @@ static int esp_input(struct xfrm_state *x, struct xfrm_decap_state *decap, struc | |||
208 | struct xfrm_encap_tmpl *encap = x->encap; | 208 | struct xfrm_encap_tmpl *encap = x->encap; |
209 | struct udphdr *uh; | 209 | struct udphdr *uh; |
210 | 210 | ||
211 | if (encap->encap_type != decap->decap_type) | ||
212 | goto out; | ||
213 | |||
214 | uh = (struct udphdr *)(iph + 1); | 211 | uh = (struct udphdr *)(iph + 1); |
215 | encap_len = (void*)esph - (void*)uh; | 212 | encap_len = (void*)esph - (void*)uh; |
216 | 213 | ||
diff --git a/net/ipv4/ipcomp.c b/net/ipv4/ipcomp.c index c95020f7c81e..0a1d86a0f632 100644 --- a/net/ipv4/ipcomp.c +++ b/net/ipv4/ipcomp.c | |||
@@ -81,8 +81,7 @@ out: | |||
81 | return err; | 81 | return err; |
82 | } | 82 | } |
83 | 83 | ||
84 | static int ipcomp_input(struct xfrm_state *x, | 84 | static int ipcomp_input(struct xfrm_state *x, struct sk_buff *skb) |
85 | struct xfrm_decap_state *decap, struct sk_buff *skb) | ||
86 | { | 85 | { |
87 | u8 nexthdr; | 86 | u8 nexthdr; |
88 | int err = 0; | 87 | int err = 0; |
diff --git a/net/ipv4/xfrm4_input.c b/net/ipv4/xfrm4_input.c index 850d919591d1..04ceb6e13b9d 100644 --- a/net/ipv4/xfrm4_input.c +++ b/net/ipv4/xfrm4_input.c | |||
@@ -90,6 +90,9 @@ int xfrm4_rcv_encap(struct sk_buff *skb, __u16 encap_type) | |||
90 | if (unlikely(x->km.state != XFRM_STATE_VALID)) | 90 | if (unlikely(x->km.state != XFRM_STATE_VALID)) |
91 | goto drop_unlock; | 91 | goto drop_unlock; |
92 | 92 | ||
93 | if (x->encap->encap_type != encap_type) | ||
94 | goto drop_unlock; | ||
95 | |||
93 | if (x->props.replay_window && xfrm_replay_check(x, seq)) | 96 | if (x->props.replay_window && xfrm_replay_check(x, seq)) |
94 | goto drop_unlock; | 97 | goto drop_unlock; |
95 | 98 | ||
@@ -97,7 +100,7 @@ int xfrm4_rcv_encap(struct sk_buff *skb, __u16 encap_type) | |||
97 | goto drop_unlock; | 100 | goto drop_unlock; |
98 | 101 | ||
99 | xfrm_vec[xfrm_nr].decap.decap_type = encap_type; | 102 | xfrm_vec[xfrm_nr].decap.decap_type = encap_type; |
100 | if (x->type->input(x, &(xfrm_vec[xfrm_nr].decap), skb)) | 103 | if (x->type->input(x, skb)) |
101 | goto drop_unlock; | 104 | goto drop_unlock; |
102 | 105 | ||
103 | /* only the first xfrm gets the encap type */ | 106 | /* only the first xfrm gets the encap type */ |
diff --git a/net/ipv4/xfrm4_tunnel.c b/net/ipv4/xfrm4_tunnel.c index 2d670935c2b5..f8ceaa127c83 100644 --- a/net/ipv4/xfrm4_tunnel.c +++ b/net/ipv4/xfrm4_tunnel.c | |||
@@ -21,7 +21,7 @@ static int ipip_output(struct xfrm_state *x, struct sk_buff *skb) | |||
21 | return 0; | 21 | return 0; |
22 | } | 22 | } |
23 | 23 | ||
24 | static int ipip_xfrm_rcv(struct xfrm_state *x, struct xfrm_decap_state *decap, struct sk_buff *skb) | 24 | static int ipip_xfrm_rcv(struct xfrm_state *x, struct sk_buff *skb) |
25 | { | 25 | { |
26 | return 0; | 26 | return 0; |
27 | } | 27 | } |