From ac1e8ee90853b5d248ea5d2d0f63ce0b5686a5b7 Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Thu, 31 Mar 2011 16:32:07 +0900 Subject: [PATCH] datapath: Update for changes in 2.6.39-rc1 Update for flowi4 and ip_route_output_flow() changes in 2.6.39-rc1. Signed-off-by: Simon Horman [Jesse: drop redundant unlikely() from IS_ERR()] Signed-off-by: Jesse Gross --- datapath/tunnel.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/datapath/tunnel.c b/datapath/tunnel.c index 7863b7a3..899d1cdc 100644 --- a/datapath/tunnel.c +++ b/datapath/tunnel.c @@ -991,6 +991,7 @@ static struct rtable *find_route(struct vport *vport, return cur_cache->rt; } else { struct rtable *rt; +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39) struct flowi fl = { .nl_u = { .ip4_u = { .daddr = mutable->daddr, .saddr = mutable->saddr, @@ -999,6 +1000,16 @@ static struct rtable *find_route(struct vport *vport, if (unlikely(ip_route_output_key(&init_net, &rt, &fl))) return NULL; +#else + struct flowi4 fl = { .daddr = mutable->daddr, + .saddr = mutable->saddr, + .flowi4_tos = tos, + .flowi4_proto = tnl_vport->tnl_ops->ipproto }; + + rt = ip_route_output_key(&init_net, &fl); + if (IS_ERR(rt)) + return NULL; +#endif if (likely(tos == mutable->tos)) *cache = build_cache(vport, mutable, rt); -- 2.30.2