Commit 7efc0b6b authored by David Ahern's avatar David Ahern Committed by David S. Miller

net/ipv4: Pass net to fib_multipath_hash instead of fib_info

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: default avatarDavid Ahern <dsahern@gmail.com>
Reviewed-by: default avatarIdo Schimmel <idosch@mellanox.com>
Reviewed-by: default avatarNikolay Aleksandrov <nikolay@cumulusnetworks.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e871cae7
...@@ -395,7 +395,7 @@ int fib_sync_down_addr(struct net_device *dev, __be32 local); ...@@ -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); int fib_sync_up(struct net_device *dev, unsigned int nh_flags);
#ifdef CONFIG_IP_ROUTE_MULTIPATH #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); const struct sk_buff *skb, struct flow_keys *flkeys);
#endif #endif
void fib_select_multipath(struct fib_result *res, int hash); void fib_select_multipath(struct fib_result *res, int hash);
......
...@@ -1770,7 +1770,7 @@ void fib_select_path(struct net *net, struct fib_result *res, ...@@ -1770,7 +1770,7 @@ void fib_select_path(struct net *net, struct fib_result *res,
#ifdef CONFIG_IP_ROUTE_MULTIPATH #ifdef CONFIG_IP_ROUTE_MULTIPATH
if (res->fi->fib_nhs > 1) { 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); fib_select_multipath(res, h);
} }
......
...@@ -1782,10 +1782,9 @@ static void ip_multipath_l3_keys(const struct sk_buff *skb, ...@@ -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 */ /* 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) const struct sk_buff *skb, struct flow_keys *flkeys)
{ {
struct net *net = fi->fib_net;
struct flow_keys hash_keys; struct flow_keys hash_keys;
u32 mhash; u32 mhash;
...@@ -1852,7 +1851,7 @@ static int ip_mkroute_input(struct sk_buff *skb, ...@@ -1852,7 +1851,7 @@ static int ip_mkroute_input(struct sk_buff *skb,
{ {
#ifdef CONFIG_IP_ROUTE_MULTIPATH #ifdef CONFIG_IP_ROUTE_MULTIPATH
if (res->fi && res->fi->fib_nhs > 1) { 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); fib_select_multipath(res, h);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment