[Devel] [PATCH RHEL7 COMMIT] ms/i40iw: remove bogus call to netdev_master_upper_dev_get

Konstantin Khorenko khorenko at virtuozzo.com
Thu Apr 30 19:36:31 MSK 2020


The commit is pushed to "branch-rh7-3.10.0-1127.vz7.150.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-1127.vz7.150.6
------>
commit bbaffe2ab803086f701402fd378a138c25aa14af
Author: Denis V. Lunev <den at openvz.org>
Date:   Thu Apr 30 19:36:30 2020 +0300

    ms/i40iw: remove bogus call to netdev_master_upper_dev_get
    
    Local variable netdev is not used in these calls.
    
    It should be noted, that this change is required to work in bonded mode.
    In the other case we would get the following assert:
     "RTNL: assertion failed at net/core/dev.c (5665)"
    with the calltrace as follows:
            dump_stack+0x19/0x1b
            netdev_master_upper_dev_get+0x61/0x70
            i40iw_addr_resolve_neigh+0x1e8/0x220
            i40iw_make_cm_node+0x296/0x700
            ? i40iw_find_listener.isra.10+0xcc/0x110
            i40iw_receive_ilq+0x3d4/0x810
            i40iw_puda_poll_completion+0x341/0x420
            i40iw_process_ceq+0xa5/0x280
            i40iw_ceq_dpc+0x1e/0x40
            tasklet_action+0x83/0x140
            __do_softirq+0x125/0x2bb
            call_softirq+0x1c/0x30
            do_softirq+0x65/0xa0
            irq_exit+0x105/0x110
            do_IRQ+0x56/0xf0
            common_interrupt+0x16a/0x16a
            ? cpuidle_enter_state+0x57/0xd0
            cpuidle_idle_call+0xde/0x230
            arch_cpu_idle+0xe/0xc0
            cpu_startup_entry+0x14a/0x1e0
            start_secondary+0x1f7/0x270
            start_cpu+0x5/0x14
    
    Signed-off-by: Denis V. Lunev <den at openvz.org>
    CC: Konstantin Khorenko <khorenko at virtuozzo.com>
    CC: Faisal Latif <faisal.latif at intel.com>
    CC: Shiraz Saleem <shiraz.saleem at intel.com>
    CC: Doug Ledford <dledford at redhat.com>
    CC: Jason Gunthorpe <jgg at ziepe.ca>
    CC: linux-rdma at vger.kernel.org
    CC: linux-kernel at vger.kernel.org
    
    https://pmc.acronis.com/browse/VSTOR-33397
    
    Signed-off-by: "Denis V. Lunev" <den at openvz.org>
---
 drivers/infiniband/hw/i40iw/i40iw_cm.c | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/drivers/infiniband/hw/i40iw/i40iw_cm.c b/drivers/infiniband/hw/i40iw/i40iw_cm.c
index 4b3999d88c9e6..4e570c6debb70 100644
--- a/drivers/infiniband/hw/i40iw/i40iw_cm.c
+++ b/drivers/infiniband/hw/i40iw/i40iw_cm.c
@@ -1984,7 +1984,6 @@ static int i40iw_addr_resolve_neigh(struct i40iw_device *iwdev,
 	struct rtable *rt;
 	struct neighbour *neigh;
 	int rc = arpindex;
-	struct net_device *netdev = iwdev->netdev;
 	__be32 dst_ipaddr = htonl(dst_ip);
 	__be32 src_ipaddr = htonl(src_ip);
 
@@ -1994,9 +1993,6 @@ static int i40iw_addr_resolve_neigh(struct i40iw_device *iwdev,
 		return rc;
 	}
 
-	if (netif_is_bond_slave(netdev))
-		netdev = netdev_master_upper_dev_get(netdev);
-
 	neigh = dst_neigh_lookup(&rt->dst, &dst_ipaddr);
 
 	rcu_read_lock();
@@ -2062,7 +2058,6 @@ static int i40iw_addr_resolve_neigh_ipv6(struct i40iw_device *iwdev,
 {
 	struct neighbour *neigh;
 	int rc = arpindex;
-	struct net_device *netdev = iwdev->netdev;
 	struct dst_entry *dst;
 	struct sockaddr_in6 dst_addr;
 	struct sockaddr_in6 src_addr;
@@ -2083,9 +2078,6 @@ static int i40iw_addr_resolve_neigh_ipv6(struct i40iw_device *iwdev,
 		return rc;
 	}
 
-	if (netif_is_bond_slave(netdev))
-		netdev = netdev_master_upper_dev_get(netdev);
-
 	neigh = dst_neigh_lookup(dst, dst_addr.sin6_addr.in6_u.u6_addr32);
 
 	rcu_read_lock();


More information about the Devel mailing list