/linux-4.1.27/net/ipv6/ |
H A D | xfrm6_policy.c | 74 static void xfrm6_init_dst(struct net *net, struct xfrm_dst *xdst) xfrm6_init_dst() argument 76 struct rt6_info *rt = (struct rt6_info *)xdst; xfrm6_init_dst() 95 static int xfrm6_fill_dst(struct xfrm_dst *xdst, struct net_device *dev, xfrm6_fill_dst() argument 98 struct rt6_info *rt = (struct rt6_info *)xdst->route; xfrm6_fill_dst() 100 xdst->u.dst.dev = dev; xfrm6_fill_dst() 103 xdst->u.rt6.rt6i_idev = in6_dev_get(dev); xfrm6_fill_dst() 104 if (!xdst->u.rt6.rt6i_idev) { xfrm6_fill_dst() 109 rt6_transfer_peer(&xdst->u.rt6, rt); xfrm6_fill_dst() 113 xdst->u.rt6.rt6i_flags = rt->rt6i_flags & (RTF_ANYCAST | xfrm6_fill_dst() 115 xdst->u.rt6.rt6i_metric = rt->rt6i_metric; xfrm6_fill_dst() 116 xdst->u.rt6.rt6i_node = rt->rt6i_node; xfrm6_fill_dst() 118 xdst->route_cookie = rt->rt6i_node->fn_sernum; xfrm6_fill_dst() 119 xdst->u.rt6.rt6i_gateway = rt->rt6i_gateway; xfrm6_fill_dst() 120 xdst->u.rt6.rt6i_dst = rt->rt6i_dst; xfrm6_fill_dst() 121 xdst->u.rt6.rt6i_src = rt->rt6i_src; xfrm6_fill_dst() 236 struct xfrm_dst *xdst = (struct xfrm_dst *)dst; xfrm6_update_pmtu() local 237 struct dst_entry *path = xdst->route; xfrm6_update_pmtu() 245 struct xfrm_dst *xdst = (struct xfrm_dst *)dst; xfrm6_redirect() local 246 struct dst_entry *path = xdst->route; xfrm6_redirect() 253 struct xfrm_dst *xdst = (struct xfrm_dst *)dst; xfrm6_dst_destroy() local 255 if (likely(xdst->u.rt6.rt6i_idev)) xfrm6_dst_destroy() 256 in6_dev_put(xdst->u.rt6.rt6i_idev); xfrm6_dst_destroy() 258 if (rt6_has_peer(&xdst->u.rt6)) { xfrm6_dst_destroy() 259 struct inet_peer *peer = rt6_peer_ptr(&xdst->u.rt6); xfrm6_dst_destroy() 262 xfrm_dst_destroy(xdst); xfrm6_dst_destroy() 268 struct xfrm_dst *xdst; xfrm6_dst_ifdown() local 273 xdst = (struct xfrm_dst *)dst; xfrm6_dst_ifdown() 274 if (xdst->u.rt6.rt6i_idev->dev == dev) { xfrm6_dst_ifdown() 280 in6_dev_put(xdst->u.rt6.rt6i_idev); xfrm6_dst_ifdown() 281 xdst->u.rt6.rt6i_idev = loopback_idev; xfrm6_dst_ifdown() 283 xdst = (struct xfrm_dst *)xdst->u.dst.child; xfrm6_dst_ifdown() 284 } while (xdst->u.dst.xfrm); xfrm6_dst_ifdown()
|
/linux-4.1.27/net/ipv4/ |
H A D | xfrm4_policy.c | 76 static int xfrm4_fill_dst(struct xfrm_dst *xdst, struct net_device *dev, xfrm4_fill_dst() argument 79 struct rtable *rt = (struct rtable *)xdst->route; xfrm4_fill_dst() 82 xdst->u.rt.rt_iif = fl4->flowi4_iif; xfrm4_fill_dst() 84 xdst->u.dst.dev = dev; xfrm4_fill_dst() 89 xdst->u.rt.rt_is_input = rt->rt_is_input; xfrm4_fill_dst() 90 xdst->u.rt.rt_flags = rt->rt_flags & (RTCF_BROADCAST | RTCF_MULTICAST | xfrm4_fill_dst() 92 xdst->u.rt.rt_type = rt->rt_type; xfrm4_fill_dst() 93 xdst->u.rt.rt_gateway = rt->rt_gateway; xfrm4_fill_dst() 94 xdst->u.rt.rt_uses_gateway = rt->rt_uses_gateway; xfrm4_fill_dst() 95 xdst->u.rt.rt_pmtu = rt->rt_pmtu; xfrm4_fill_dst() 96 INIT_LIST_HEAD(&xdst->u.rt.rt_uncached); xfrm4_fill_dst() 200 struct xfrm_dst *xdst = (struct xfrm_dst *)dst; xfrm4_update_pmtu() local 201 struct dst_entry *path = xdst->route; xfrm4_update_pmtu() 209 struct xfrm_dst *xdst = (struct xfrm_dst *)dst; xfrm4_redirect() local 210 struct dst_entry *path = xdst->route; xfrm4_redirect() 217 struct xfrm_dst *xdst = (struct xfrm_dst *)dst; xfrm4_dst_destroy() local 221 xfrm_dst_destroy(xdst); xfrm4_dst_destroy()
|
/linux-4.1.27/net/xfrm/ |
H A D | xfrm_policy.c | 55 static int xfrm_bundle_ok(struct xfrm_dst *xdst); 1509 struct xfrm_dst *xdst = container_of(flo, struct xfrm_dst, flo); xfrm_bundle_flo_get() local 1510 struct dst_entry *dst = &xdst->u.dst; xfrm_bundle_flo_get() 1512 if (xdst->route == NULL) { xfrm_bundle_flo_get() 1516 if (xdst->num_xfrms > 0) xfrm_bundle_flo_get() 1532 struct xfrm_dst *xdst = container_of(flo, struct xfrm_dst, flo); xfrm_bundle_flo_check() local 1533 struct dst_entry *dst = &xdst->u.dst; xfrm_bundle_flo_check() 1535 if (!xdst->route) xfrm_bundle_flo_check() 1545 struct xfrm_dst *xdst = container_of(flo, struct xfrm_dst, flo); xfrm_bundle_flo_delete() local 1546 struct dst_entry *dst = &xdst->u.dst; xfrm_bundle_flo_delete() 1561 struct xfrm_dst *xdst; xfrm_alloc_dst() local 1578 xdst = dst_alloc(dst_ops, NULL, 0, DST_OBSOLETE_NONE, 0); xfrm_alloc_dst() 1580 if (likely(xdst)) { xfrm_alloc_dst() 1581 struct dst_entry *dst = &xdst->u.dst; xfrm_alloc_dst() 1583 memset(dst + 1, 0, sizeof(*xdst) - sizeof(*dst)); xfrm_alloc_dst() 1584 xdst->flo.ops = &xfrm_bundle_fc_ops; xfrm_alloc_dst() 1586 afinfo->init_dst(net, xdst); xfrm_alloc_dst() 1588 xdst = ERR_PTR(-ENOBUFS); xfrm_alloc_dst() 1592 return xdst; xfrm_alloc_dst() 1612 static inline int xfrm_fill_dst(struct xfrm_dst *xdst, struct net_device *dev, xfrm_fill_dst() argument 1616 xfrm_policy_get_afinfo(xdst->u.dst.ops->family); xfrm_fill_dst() 1622 err = afinfo->fill_dst(xdst, dev, fl); xfrm_fill_dst() 1664 struct xfrm_dst *xdst = xfrm_alloc_dst(net, family); xfrm_bundle_create() local 1665 struct dst_entry *dst1 = &xdst->u.dst; xfrm_bundle_create() 1667 err = PTR_ERR(xdst); xfrm_bundle_create() 1668 if (IS_ERR(xdst)) { xfrm_bundle_create() 1691 xdst->route = dst; xfrm_bundle_create() 1705 xdst->xfrm_genid = xfrm[i]->genid; xfrm_bundle_create() 1735 struct xfrm_dst *xdst = (struct xfrm_dst *)dst_prev; xfrm_bundle_create() local 1737 err = xfrm_fill_dst(xdst, dev, fl); xfrm_bundle_create() 1743 header_len -= xdst->u.dst.xfrm->props.header_len; xfrm_bundle_create() 1744 trailer_len -= xdst->u.dst.xfrm->props.trailer_len; xfrm_bundle_create() 1778 struct xfrm_dst *xdst = (struct xfrm_dst *)dst; xfrm_dst_update_parent() local 1779 return xfrm_dst_alloc_copy((void **)&(xdst->partner), xfrm_dst_update_parent() 1790 struct xfrm_dst *xdst = (struct xfrm_dst *)dst; xfrm_dst_update_origin() local 1791 return xfrm_dst_alloc_copy((void **)&(xdst->origin), fl, sizeof(*fl)); xfrm_dst_update_origin() 1849 struct xfrm_dst *xdst; xfrm_resolve_and_create_bundle() local 1866 xdst = (struct xfrm_dst *)dst; xfrm_resolve_and_create_bundle() 1867 xdst->num_xfrms = err; xfrm_resolve_and_create_bundle() 1878 xdst->num_pols = num_pols; xfrm_resolve_and_create_bundle() 1879 memcpy(xdst->pols, pols, sizeof(struct xfrm_policy *) * num_pols); xfrm_resolve_and_create_bundle() 1880 xdst->policy_genid = atomic_read(&pols[0]->genid); xfrm_resolve_and_create_bundle() 1882 return xdst; xfrm_resolve_and_create_bundle() 1966 struct xfrm_dst *xdst = (struct xfrm_dst *) dst; xdst_queue_output() local 1967 struct xfrm_policy *pol = xdst->pols[0]; xdst_queue_output() 2014 struct xfrm_dst *xdst; xfrm_create_dummy_bundle() local 2016 xdst = xfrm_alloc_dst(net, family); xfrm_create_dummy_bundle() 2017 if (IS_ERR(xdst)) xfrm_create_dummy_bundle() 2018 return xdst; xfrm_create_dummy_bundle() 2023 return xdst; xfrm_create_dummy_bundle() 2026 dst1 = &xdst->u.dst; xfrm_create_dummy_bundle() 2028 xdst->route = dst; xfrm_create_dummy_bundle() 2050 err = xfrm_fill_dst(xdst, dev, fl); xfrm_create_dummy_bundle() 2055 return xdst; xfrm_create_dummy_bundle() 2059 xdst = ERR_PTR(err); xfrm_create_dummy_bundle() 2069 struct xfrm_dst *xdst, *new_xdst; xfrm_bundle_lookup() local 2073 xdst = NULL; xfrm_bundle_lookup() 2075 xdst = container_of(oldflo, struct xfrm_dst, flo); xfrm_bundle_lookup() 2076 num_pols = xdst->num_pols; xfrm_bundle_lookup() 2077 num_xfrms = xdst->num_xfrms; xfrm_bundle_lookup() 2080 pols[i] = xdst->pols[i]; xfrm_bundle_lookup() 2084 dst_free(&xdst->u.dst); xfrm_bundle_lookup() 2085 xdst = NULL; xfrm_bundle_lookup() 2094 if (xdst == NULL) { xfrm_bundle_lookup() 2116 dst_hold(&xdst->u.dst); xfrm_bundle_lookup() 2122 xdst->num_xfrms = 0; xfrm_bundle_lookup() 2123 dst_hold(&xdst->u.dst); xfrm_bundle_lookup() 2128 if (xdst) { xfrm_bundle_lookup() 2130 xdst->num_pols = 0; xfrm_bundle_lookup() 2131 dst_free(&xdst->u.dst); xfrm_bundle_lookup() 2143 xdst = xfrm_create_dummy_bundle(net, xflo, fl, num_xfrms, family); xfrm_bundle_lookup() 2144 if (IS_ERR(xdst)) { xfrm_bundle_lookup() 2146 return ERR_CAST(xdst); xfrm_bundle_lookup() 2148 xdst->num_pols = num_pols; xfrm_bundle_lookup() 2149 xdst->num_xfrms = num_xfrms; xfrm_bundle_lookup() 2150 memcpy(xdst->pols, pols, sizeof(struct xfrm_policy *) * num_pols); xfrm_bundle_lookup() 2152 dst_hold(&xdst->u.dst); xfrm_bundle_lookup() 2153 return &xdst->flo; xfrm_bundle_lookup() 2158 if (xdst != NULL) xfrm_bundle_lookup() 2159 dst_free(&xdst->u.dst); xfrm_bundle_lookup() 2193 struct xfrm_dst *xdst; xfrm_lookup() local 2200 xdst = NULL; xfrm_lookup() 2217 xdst = xfrm_resolve_and_create_bundle( xfrm_lookup() 2220 if (IS_ERR(xdst)) { xfrm_lookup() 2222 err = PTR_ERR(xdst); xfrm_lookup() 2224 } else if (xdst == NULL) { xfrm_lookup() 2230 dst_hold(&xdst->u.dst); xfrm_lookup() 2231 xdst->u.dst.flags |= DST_NOCACHE; xfrm_lookup() 2232 route = xdst->route; xfrm_lookup() 2236 if (xdst == NULL) { xfrm_lookup() 2255 xdst = container_of(flo, struct xfrm_dst, flo); xfrm_lookup() 2257 num_pols = xdst->num_pols; xfrm_lookup() 2258 num_xfrms = xdst->num_xfrms; xfrm_lookup() 2259 memcpy(pols, xdst->pols, sizeof(struct xfrm_policy *) * num_pols); xfrm_lookup() 2260 route = xdst->route; xfrm_lookup() 2263 dst = &xdst->u.dst; xfrm_lookup() 2640 * X is the "xdst->route" of A (X is also the "dst->path" of A xfrm_dst_check() 2701 struct xfrm_dst *xdst = (struct xfrm_dst *)dst; xfrm_init_pmtu() local 2705 xdst->child_mtu_cached = pmtu; xfrm_init_pmtu() 2709 route_mtu_cached = dst_mtu(xdst->route); xfrm_init_pmtu() 2710 xdst->route_mtu_cached = route_mtu_cached; xfrm_init_pmtu() 2739 struct xfrm_dst *xdst = (struct xfrm_dst *)dst; xfrm_bundle_ok() local 2743 if (xdst->xfrm_genid != dst->xfrm->genid) xfrm_bundle_ok() 2745 if (xdst->num_pols > 0 && xfrm_bundle_ok() 2746 xdst->policy_genid != atomic_read(&xdst->pols[0]->genid)) xfrm_bundle_ok() 2750 if (xdst->child_mtu_cached != mtu) { xfrm_bundle_ok() 2751 last = xdst; xfrm_bundle_ok() 2752 xdst->child_mtu_cached = mtu; xfrm_bundle_ok() 2755 if (!dst_check(xdst->route, xdst->route_cookie)) xfrm_bundle_ok() 2757 mtu = dst_mtu(xdst->route); xfrm_bundle_ok() 2758 if (xdst->route_mtu_cached != mtu) { xfrm_bundle_ok() 2759 last = xdst; xfrm_bundle_ok() 2760 xdst->route_mtu_cached = mtu; xfrm_bundle_ok()
|
/linux-4.1.27/include/net/ |
H A D | xfrm.h | 300 int (*fill_dst)(struct xfrm_dst *xdst, 961 static inline void xfrm_dst_destroy(struct xfrm_dst *xdst) xfrm_dst_destroy() argument 963 xfrm_pols_put(xdst->pols, xdst->num_pols); xfrm_dst_destroy() 964 dst_release(xdst->route); xfrm_dst_destroy() 965 if (likely(xdst->u.dst.xfrm)) xfrm_dst_destroy() 966 xfrm_state_put(xdst->u.dst.xfrm); xfrm_dst_destroy() 968 kfree(xdst->origin); xfrm_dst_destroy() 969 xdst->origin = NULL; xfrm_dst_destroy() 970 kfree(xdst->partner); xfrm_dst_destroy() 971 xdst->partner = NULL; xfrm_dst_destroy()
|
/linux-4.1.27/drivers/video/fbdev/mmp/hw/ |
H A D | mmp_ctrl.c | 157 writel_relaxed((win->ydst << 16) | win->xdst, ®s->v_size_z); overlay_set_win() 163 writel_relaxed((win->ydst << 16) | win->xdst, ®s->g_size_z); overlay_set_win()
|
/linux-4.1.27/include/video/ |
H A D | mmp_disp.h | 85 u16 xdst; member in struct:mmp_win
|
/linux-4.1.27/drivers/video/fbdev/mmp/fb/ |
H A D | mmpfb.c | 403 win.xsrc = win.xdst = fbi->mode.xres; mmpfb_set_win()
|