aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/bonding
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/bonding')
-rw-r--r--drivers/net/bonding/bond_main.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 68a5ce0a649f..3ad4f501949e 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -2676,7 +2676,6 @@ static void bond_arp_send_all(struct bonding *bond, struct slave *slave)
2676 __be32 *targets = bond->params.arp_targets; 2676 __be32 *targets = bond->params.arp_targets;
2677 struct vlan_entry *vlan; 2677 struct vlan_entry *vlan;
2678 struct net_device *vlan_dev; 2678 struct net_device *vlan_dev;
2679 struct flowi fl;
2680 struct rtable *rt; 2679 struct rtable *rt;
2681 2680
2682 for (i = 0; (i < BOND_MAX_ARP_TARGETS); i++) { 2681 for (i = 0; (i < BOND_MAX_ARP_TARGETS); i++) {
@@ -2695,15 +2694,12 @@ static void bond_arp_send_all(struct bonding *bond, struct slave *slave)
2695 * determine which VLAN interface would be used, so we 2694 * determine which VLAN interface would be used, so we
2696 * can tag the ARP with the proper VLAN tag. 2695 * can tag the ARP with the proper VLAN tag.
2697 */ 2696 */
2698 memset(&fl, 0, sizeof(fl)); 2697 rt = ip_route_output(dev_net(bond->dev), targets[i], 0,
2699 fl.fl4_dst = targets[i]; 2698 RTO_ONLINK, 0);
2700 fl.fl4_tos = RTO_ONLINK;
2701
2702 rt = ip_route_output_key(dev_net(bond->dev), &fl);
2703 if (IS_ERR(rt)) { 2699 if (IS_ERR(rt)) {
2704 if (net_ratelimit()) { 2700 if (net_ratelimit()) {
2705 pr_warning("%s: no route to arp_ip_target %pI4\n", 2701 pr_warning("%s: no route to arp_ip_target %pI4\n",
2706 bond->dev->name, &fl.fl4_dst); 2702 bond->dev->name, &targets[i]);
2707 } 2703 }
2708 continue; 2704 continue;
2709 } 2705 }
@@ -2739,7 +2735,7 @@ static void bond_arp_send_all(struct bonding *bond, struct slave *slave)
2739 2735
2740 if (net_ratelimit()) { 2736 if (net_ratelimit()) {
2741 pr_warning("%s: no path to arp_ip_target %pI4 via rt.dev %s\n", 2737 pr_warning("%s: no path to arp_ip_target %pI4 via rt.dev %s\n",
2742 bond->dev->name, &fl.fl4_dst, 2738 bond->dev->name, &targets[i],
2743 rt->dst.dev ? rt->dst.dev->name : "NULL"); 2739 rt->dst.dev ? rt->dst.dev->name : "NULL");
2744 } 2740 }
2745 ip_rt_put(rt); 2741 ip_rt_put(rt);