diff options
Diffstat (limited to 'net/ipv6')
-rw-r--r-- | net/ipv6/xfrm6_policy.c | 14 | ||||
-rw-r--r-- | net/ipv6/xfrm6_state.c | 1 |
2 files changed, 2 insertions, 13 deletions
diff --git a/net/ipv6/xfrm6_policy.c b/net/ipv6/xfrm6_policy.c index dc4bdcb55cbe..324268329f69 100644 --- a/net/ipv6/xfrm6_policy.c +++ b/net/ipv6/xfrm6_policy.c | |||
@@ -214,7 +214,6 @@ __xfrm6_bundle_create(struct xfrm_policy *policy, struct xfrm_state **xfrm, int | |||
214 | i = 0; | 214 | i = 0; |
215 | for (; dst_prev != &rt->u.dst; dst_prev = dst_prev->child) { | 215 | for (; dst_prev != &rt->u.dst; dst_prev = dst_prev->child) { |
216 | struct xfrm_dst *x = (struct xfrm_dst*)dst_prev; | 216 | struct xfrm_dst *x = (struct xfrm_dst*)dst_prev; |
217 | struct xfrm_state_afinfo *afinfo; | ||
218 | 217 | ||
219 | dst_prev->xfrm = xfrm[i++]; | 218 | dst_prev->xfrm = xfrm[i++]; |
220 | dst_prev->dev = rt->u.dst.dev; | 219 | dst_prev->dev = rt->u.dst.dev; |
@@ -231,18 +230,7 @@ __xfrm6_bundle_create(struct xfrm_policy *policy, struct xfrm_state **xfrm, int | |||
231 | /* Copy neighbour for reachability confirmation */ | 230 | /* Copy neighbour for reachability confirmation */ |
232 | dst_prev->neighbour = neigh_clone(rt->u.dst.neighbour); | 231 | dst_prev->neighbour = neigh_clone(rt->u.dst.neighbour); |
233 | dst_prev->input = rt->u.dst.input; | 232 | dst_prev->input = rt->u.dst.input; |
234 | /* XXX: When IPv4 is implemented as module and can be unloaded, | 233 | dst_prev->output = dst_prev->xfrm->mode->afinfo->output; |
235 | * we should manage reference to xfrm4_output in afinfo->output. | ||
236 | * Miyazawa | ||
237 | */ | ||
238 | afinfo = xfrm_state_get_afinfo(dst_prev->xfrm->props.family); | ||
239 | if (!afinfo) { | ||
240 | dst = *dst_p; | ||
241 | goto error; | ||
242 | } | ||
243 | |||
244 | dst_prev->output = afinfo->output; | ||
245 | xfrm_state_put_afinfo(afinfo); | ||
246 | /* Sheit... I remember I did this right. Apparently, | 234 | /* Sheit... I remember I did this right. Apparently, |
247 | * it was magically lost, so this code needs audit */ | 235 | * it was magically lost, so this code needs audit */ |
248 | x->u.rt6.rt6i_flags = rt0->rt6i_flags&(RTCF_BROADCAST|RTCF_MULTICAST|RTCF_LOCAL); | 236 | x->u.rt6.rt6i_flags = rt0->rt6i_flags&(RTCF_BROADCAST|RTCF_MULTICAST|RTCF_LOCAL); |
diff --git a/net/ipv6/xfrm6_state.c b/net/ipv6/xfrm6_state.c index e644c80515fc..b392bee396f1 100644 --- a/net/ipv6/xfrm6_state.c +++ b/net/ipv6/xfrm6_state.c | |||
@@ -170,6 +170,7 @@ __xfrm6_tmpl_sort(struct xfrm_tmpl **dst, struct xfrm_tmpl **src, int n) | |||
170 | 170 | ||
171 | static struct xfrm_state_afinfo xfrm6_state_afinfo = { | 171 | static struct xfrm_state_afinfo xfrm6_state_afinfo = { |
172 | .family = AF_INET6, | 172 | .family = AF_INET6, |
173 | .owner = THIS_MODULE, | ||
173 | .init_tempsel = __xfrm6_init_tempsel, | 174 | .init_tempsel = __xfrm6_init_tempsel, |
174 | .tmpl_sort = __xfrm6_tmpl_sort, | 175 | .tmpl_sort = __xfrm6_tmpl_sort, |
175 | .state_sort = __xfrm6_state_sort, | 176 | .state_sort = __xfrm6_state_sort, |