> > > I think Konstantin's suggestion makes sense, how about we do this > > > (don't need to define netdev_is_slave(dev)): > > > > > > --- a/drivers/infiniband/core/roce_gid_mgmt.c > > > +++ b/drivers/infiniband/core/roce_gid_mgmt.c > > > @@ -161,7 +161,7 @@ is_eth_port_of_netdev_filter(struct ib_device > > > *ib_dev, u32 port, > > > res = ((rdma_is_upper_dev_rcu(rdma_ndev, cookie) && > > > (is_eth_active_slave_of_bonding_rcu(rdma_ndev, real_dev) & > > > REQUIRED_BOND_STATES)) || > > > - real_dev == rdma_ndev); > > > + (real_dev == rdma_ndev && > > > + !netif_is_bond_slave(rdma_ndev))); > > > > > > rcu_read_unlock(); > > > return res; > > > > > > > > > is_eth_port_of_netdev_filter() should not return true if this netdev > > > is a bonded slave. In this case, only use the address of its bonded master. > > > > > Right. This change makes sense to me. > > I don't have a setup presently to verify it to ensure I didn't miss a corner case. > > Leon, > > Can you or others please test the regression once with the formal patch? > > Sure, once Long will send the patch, I'll make sure that it is tested. > > Thanks > I posted patches for discussion. https://lore.kernel.org/linux-rdma/1732736619-19941-1-git-send-email-longli@xxxxxxxxxxxxxxxxx/T/#t Thank you, Long