summaryrefslogtreecommitdiffstats
path: root/net/ipv4/xfrm4_policy.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2011-03-05 06:47:09 +0100
committerDavid S. Miller <davem@davemloft.net>2011-03-05 06:55:31 +0100
commit5e2b61f78411be25f0b84f97d5b5d312f184dfd1 (patch)
tree6a5faa5fb7a2242bebacba4cdb5722b988d3e909 /net/ipv4/xfrm4_policy.c
parentipv4: Set rt->rt_iif more sanely on output routes. (diff)
downloadlinux-5e2b61f78411be25f0b84f97d5b5d312f184dfd1.tar.xz
linux-5e2b61f78411be25f0b84f97d5b5d312f184dfd1.zip
ipv4: Remove flowi from struct rtable.
The only necessary parts are the src/dst addresses, the interface indexes, the TOS, and the mark. The rest is unnecessary bloat, which amounts to nearly 50 bytes on 64-bit. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/xfrm4_policy.c')
-rw-r--r--net/ipv4/xfrm4_policy.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/net/ipv4/xfrm4_policy.c b/net/ipv4/xfrm4_policy.c
index 45b821480427..c70c42e7e77b 100644
--- a/net/ipv4/xfrm4_policy.c
+++ b/net/ipv4/xfrm4_policy.c
@@ -70,7 +70,12 @@ static int xfrm4_fill_dst(struct xfrm_dst *xdst, struct net_device *dev,
{
struct rtable *rt = (struct rtable *)xdst->route;
- xdst->u.rt.fl = *fl;
+ rt->rt_key_dst = fl->fl4_dst;
+ rt->rt_key_src = fl->fl4_src;
+ rt->rt_tos = fl->fl4_tos;
+ rt->rt_iif = fl->iif;
+ rt->rt_oif = fl->oif;
+ rt->rt_mark = fl->mark;
xdst->u.dst.dev = dev;
dev_hold(dev);