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 ---