Hi Jason, On Thu, 11 Jul 2019 14:33:07 +0000 Jason Gunthorpe wrote: > > I've added this patch to the rdma tree to fix the missing locking. > > The merge resolution will be simply swapping > for_ifa to in_dev_for_each_ifa_rtnl. OK, I added the below merge resolution patch to the merge of the rdma tree today (since Linus' has merged the net-next tree now). From: Stephen Rothwell Date: Fri, 12 Jul 2019 11:28:30 +1000 Subject: [PATCH] RDMA: fix for removal of for_ifa() Signed-off-by: Stephen Rothwell --- drivers/infiniband/sw/siw/siw_cm.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/infiniband/sw/siw/siw_cm.c b/drivers/infiniband/sw/siw/siw_cm.c index 43f7f12e5f7f..cbea46ff6dd1 100644 --- a/drivers/infiniband/sw/siw/siw_cm.c +++ b/drivers/infiniband/sw/siw/siw_cm.c @@ -1951,6 +1951,7 @@ static void siw_drop_listeners(struct iw_cm_id *id) int siw_create_listen(struct iw_cm_id *id, int backlog) { struct net_device *dev = to_siw_dev(id->device)->netdev; + const struct in_ifaddr *ifa; int rv = 0, listeners = 0; siw_dbg(id->device, "id 0x%p: backlog %d\n", id, backlog); @@ -1973,8 +1974,7 @@ int siw_create_listen(struct iw_cm_id *id, int backlog) &s_raddr->sin_addr, ntohs(s_raddr->sin_port)); rtnl_lock(); - for_ifa(in_dev) - { + in_dev_for_each_ifa_rtnl(ifa, in_dev) { if (ipv4_is_zeronet(s_laddr.sin_addr.s_addr) || s_laddr.sin_addr.s_addr == ifa->ifa_address) { s_laddr.sin_addr.s_addr = ifa->ifa_address; @@ -1986,7 +1986,6 @@ int siw_create_listen(struct iw_cm_id *id, int backlog) listeners++; } } - endfor_ifa(in_dev); rtnl_unlock(); in_dev_put(in_dev); } else if (id->local_addr.ss_family == AF_INET6) { -- 2.20.1 -- Cheers, Stephen Rothwell