net/ipv4: Pass net to fib_multipath_hash instead of fib_info
authorDavid Ahern <dsahern@gmail.com>
Fri, 2 Mar 2018 16:32:12 +0000 (08:32 -0800)
committerDavid S. Miller <davem@davemloft.net>
Sun, 4 Mar 2018 18:04:21 +0000 (13:04 -0500)
fib_multipath_hash only needs net struct to check a sysctl. Make it
clear by passing net instead of fib_info. In the end this allows
alignment between the ipv4 and ipv6 versions.

Signed-off-by: David Ahern <dsahern@gmail.com>
Reviewed-by: Ido Schimmel <idosch@mellanox.com>
Reviewed-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/ip_fib.h
net/ipv4/fib_semantics.c
net/ipv4/route.c

index 8812582a94d5060166bf0acad942f363439ffe78..7c7522e8585b68d604dc54ce8bca3a3fa0ff971b 100644 (file)
@@ -395,7 +395,7 @@ int fib_sync_down_addr(struct net_device *dev, __be32 local);
 int fib_sync_up(struct net_device *dev, unsigned int nh_flags);
 
 #ifdef CONFIG_IP_ROUTE_MULTIPATH
-int fib_multipath_hash(const struct fib_info *fi, const struct flowi4 *fl4,
+int fib_multipath_hash(const struct net *net, const struct flowi4 *fl4,
                       const struct sk_buff *skb, struct flow_keys *flkeys);
 #endif
 void fib_select_multipath(struct fib_result *res, int hash);
index 181b0d8d589c789d95c05c69487a5bbf10afa509..e7c602c600ace989d4d204c7704671a1088681e9 100644 (file)
@@ -1770,7 +1770,7 @@ void fib_select_path(struct net *net, struct fib_result *res,
 
 #ifdef CONFIG_IP_ROUTE_MULTIPATH
        if (res->fi->fib_nhs > 1) {
-               int h = fib_multipath_hash(res->fi, fl4, skb, NULL);
+               int h = fib_multipath_hash(net, fl4, skb, NULL);
 
                fib_select_multipath(res, h);
        }
index 3bb686dac27307fdd9567eb24fb91c2663625366..1689c569bbc32d3ebc7abb510fd224d2e97f49c9 100644 (file)
@@ -1782,10 +1782,9 @@ static void ip_multipath_l3_keys(const struct sk_buff *skb,
 }
 
 /* if skb is set it will be used and fl4 can be NULL */
-int fib_multipath_hash(const struct fib_info *fi, const struct flowi4 *fl4,
+int fib_multipath_hash(const struct net *net, const struct flowi4 *fl4,
                       const struct sk_buff *skb, struct flow_keys *flkeys)
 {
-       struct net *net = fi->fib_net;
        struct flow_keys hash_keys;
        u32 mhash;
 
@@ -1852,7 +1851,7 @@ static int ip_mkroute_input(struct sk_buff *skb,
 {
 #ifdef CONFIG_IP_ROUTE_MULTIPATH
        if (res->fi && res->fi->fib_nhs > 1) {
-               int h = fib_multipath_hash(res->fi, NULL, skb, hkeys);
+               int h = fib_multipath_hash(res->fi->fib_net, NULL, skb, hkeys);
 
                fib_select_multipath(res, h);
        }