xfrm6_policy.c (de3cb747ffac5f2a4a6bb156e7e2fd5229e688e5) | xfrm6_policy.c (2774c7aba6c97a2535be3309a2209770953780b3) |
---|---|
1/* 2 * xfrm6_policy.c: based on xfrm4_policy.c 3 * 4 * Authors: 5 * Mitsuru KANDA @USAGI 6 * Kazunori MIYAZAWA @USAGI 7 * Kunihiro Ishiguro <kunihiro@ipinfusion.com> 8 * IPv6 support --- 361 unchanged lines hidden (view full) --- 370{ 371 struct xfrm_dst *xdst; 372 373 if (!unregister) 374 return; 375 376 xdst = (struct xfrm_dst *)dst; 377 if (xdst->u.rt6.rt6i_idev->dev == dev) { | 1/* 2 * xfrm6_policy.c: based on xfrm4_policy.c 3 * 4 * Authors: 5 * Mitsuru KANDA @USAGI 6 * Kazunori MIYAZAWA @USAGI 7 * Kunihiro Ishiguro <kunihiro@ipinfusion.com> 8 * IPv6 support --- 361 unchanged lines hidden (view full) --- 370{ 371 struct xfrm_dst *xdst; 372 373 if (!unregister) 374 return; 375 376 xdst = (struct xfrm_dst *)dst; 377 if (xdst->u.rt6.rt6i_idev->dev == dev) { |
378 struct inet6_dev *loopback_idev = in6_dev_get(loopback_dev); | 378 struct inet6_dev *loopback_idev = in6_dev_get(init_net.loopback_dev); |
379 BUG_ON(!loopback_idev); 380 381 do { 382 in6_dev_put(xdst->u.rt6.rt6i_idev); 383 xdst->u.rt6.rt6i_idev = loopback_idev; 384 in6_dev_hold(loopback_idev); 385 xdst = (struct xfrm_dst *)xdst->u.dst.child; 386 } while (xdst->u.dst.xfrm); --- 50 unchanged lines hidden --- | 379 BUG_ON(!loopback_idev); 380 381 do { 382 in6_dev_put(xdst->u.rt6.rt6i_idev); 383 xdst->u.rt6.rt6i_idev = loopback_idev; 384 in6_dev_hold(loopback_idev); 385 xdst = (struct xfrm_dst *)xdst->u.dst.child; 386 } while (xdst->u.dst.xfrm); --- 50 unchanged lines hidden --- |