diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2005-06-20 16:18:08 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2005-06-20 16:18:08 -0400 |
commit | 72cb6962a91f2af9eef69a06198e1949c10259ae (patch) | |
tree | 3ae65d1c4e7d7cb7ac05bfc6f457312df45f6996 /net/ipv6 | |
parent | 3f7a87d2fa9b42f7aade43914f060df68cc89cc7 (diff) |
[IPSEC]: Add xfrm_init_state
This patch adds xfrm_init_state which is simply a wrapper that calls
xfrm_get_type and subsequently x->type->init_state. It also gets rid
of the unused args argument.
Abstracting it out allows us to add common initialisation code, e.g.,
to set family-specific flags.
The add_time setting in xfrm_user.c was deleted because it's already
set by xfrm_state_alloc.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Acked-by: James Morris <jmorris@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6')
-rw-r--r-- | net/ipv6/ah6.c | 2 | ||||
-rw-r--r-- | net/ipv6/esp6.c | 2 | ||||
-rw-r--r-- | net/ipv6/ipcomp6.c | 9 | ||||
-rw-r--r-- | net/ipv6/xfrm6_tunnel.c | 2 |
4 files changed, 5 insertions, 10 deletions
diff --git a/net/ipv6/ah6.c b/net/ipv6/ah6.c index e3ecf626cbf7..986fdfdccbcd 100644 --- a/net/ipv6/ah6.c +++ b/net/ipv6/ah6.c | |||
@@ -339,7 +339,7 @@ static void ah6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, | |||
339 | xfrm_state_put(x); | 339 | xfrm_state_put(x); |
340 | } | 340 | } |
341 | 341 | ||
342 | static int ah6_init_state(struct xfrm_state *x, void *args) | 342 | static int ah6_init_state(struct xfrm_state *x) |
343 | { | 343 | { |
344 | struct ah_data *ahp = NULL; | 344 | struct ah_data *ahp = NULL; |
345 | struct xfrm_algo_desc *aalg_desc; | 345 | struct xfrm_algo_desc *aalg_desc; |
diff --git a/net/ipv6/esp6.c b/net/ipv6/esp6.c index be7095d6babe..324db62515a2 100644 --- a/net/ipv6/esp6.c +++ b/net/ipv6/esp6.c | |||
@@ -296,7 +296,7 @@ static void esp6_destroy(struct xfrm_state *x) | |||
296 | kfree(esp); | 296 | kfree(esp); |
297 | } | 297 | } |
298 | 298 | ||
299 | static int esp6_init_state(struct xfrm_state *x, void *args) | 299 | static int esp6_init_state(struct xfrm_state *x) |
300 | { | 300 | { |
301 | struct esp_data *esp = NULL; | 301 | struct esp_data *esp = NULL; |
302 | 302 | ||
diff --git a/net/ipv6/ipcomp6.c b/net/ipv6/ipcomp6.c index 6cde5310cd76..423feb46ccc0 100644 --- a/net/ipv6/ipcomp6.c +++ b/net/ipv6/ipcomp6.c | |||
@@ -234,14 +234,9 @@ static struct xfrm_state *ipcomp6_tunnel_create(struct xfrm_state *x) | |||
234 | t->props.mode = 1; | 234 | t->props.mode = 1; |
235 | memcpy(t->props.saddr.a6, x->props.saddr.a6, sizeof(struct in6_addr)); | 235 | memcpy(t->props.saddr.a6, x->props.saddr.a6, sizeof(struct in6_addr)); |
236 | 236 | ||
237 | t->type = xfrm_get_type(IPPROTO_IPV6, t->props.family); | 237 | if (xfrm_init_state(t)) |
238 | if (t->type == NULL) | ||
239 | goto error; | 238 | goto error; |
240 | 239 | ||
241 | if (t->type->init_state(t, NULL)) | ||
242 | goto error; | ||
243 | |||
244 | t->km.state = XFRM_STATE_VALID; | ||
245 | atomic_set(&t->tunnel_users, 1); | 240 | atomic_set(&t->tunnel_users, 1); |
246 | 241 | ||
247 | out: | 242 | out: |
@@ -420,7 +415,7 @@ static void ipcomp6_destroy(struct xfrm_state *x) | |||
420 | xfrm6_tunnel_free_spi((xfrm_address_t *)&x->props.saddr); | 415 | xfrm6_tunnel_free_spi((xfrm_address_t *)&x->props.saddr); |
421 | } | 416 | } |
422 | 417 | ||
423 | static int ipcomp6_init_state(struct xfrm_state *x, void *args) | 418 | static int ipcomp6_init_state(struct xfrm_state *x) |
424 | { | 419 | { |
425 | int err; | 420 | int err; |
426 | struct ipcomp_data *ipcd; | 421 | struct ipcomp_data *ipcd; |
diff --git a/net/ipv6/xfrm6_tunnel.c b/net/ipv6/xfrm6_tunnel.c index ffcadd68b951..60c26c87277e 100644 --- a/net/ipv6/xfrm6_tunnel.c +++ b/net/ipv6/xfrm6_tunnel.c | |||
@@ -466,7 +466,7 @@ static void xfrm6_tunnel_err(struct sk_buff *skb, struct inet6_skb_parm *opt, | |||
466 | return; | 466 | return; |
467 | } | 467 | } |
468 | 468 | ||
469 | static int xfrm6_tunnel_init_state(struct xfrm_state *x, void *args) | 469 | static int xfrm6_tunnel_init_state(struct xfrm_state *x) |
470 | { | 470 | { |
471 | if (!x->props.mode) | 471 | if (!x->props.mode) |
472 | return -EINVAL; | 472 | return -EINVAL; |