> -----Original Message----- > From: Doug Ledford <dledford@xxxxxxxxxx> > Sent: Thursday, December 6, 2018 7:10 PM > To: Parav Pandit <parav@xxxxxxxxxxxx>; Leon Romanovsky > <leon@xxxxxxxxxx> > Cc: Jason Gunthorpe <jgg@xxxxxxxxxxxx>; Mark Zhang > <markz@xxxxxxxxxxxx>; RDMA mailing list <linux-rdma@xxxxxxxxxxxxxxx> > Subject: Re: [PATCH rdma-rc] IB/core: Don't match bond master filter for > closed slaves > > On Thu, 2018-12-06 at 20:00 -0500, Doug Ledford wrote: > > > > I didn't like the commit message as it stood, so I changed it to this. > > > > Let me know if there are any objections, it's still changeable as > > > > long as it's in my wip branch: > > > > > > > > IB/core: Fix oops in netdev_next_upper_dev_rcu() > > > > > > > > On removal of the mlx4_en module, the proper order of removal is > to > > > > remove the roce devices, and then remove the net devices the > > > > roce > > > In current code, mlx4_ib and mlx4_en are layered on top of mlx4_core. > > > > Agree. > > > > > So mlx4_en can get unloaded > > > > Agree. > > > > > even with roce devices created by mlx4_ib exist. > > > > Are you sure about this part? I'm not seeing any RoCE devices after I > > unload mlx4_en. I am, however, seeing the parent ibdevice mlx4_0 and > > it has two ports, but 1 port is registered and active and the other > > port exists, but is unregistered from things like the verbs layer and > > stuff like that. It seems it would be more accurate to say that there > > are no longer any registered RoCE devices, but the parent ibdevice, > > which is a dual port device, still has a stub for the RoCE device with > > all of the capabilities and status set to defaults/down, and which has > > no attached netdev device. We need to filter this > > down/default/unregistered device port from results or we get the oops > referenced. > > Does this only happen on dual port devices when in mixed ib/eth mode? > It discovered when we had both dual port with bonding configured. But I think this can happen with mlx5 ports in ethernet mode too which returns get_netdev NULL when netdev is registered. So it is desired to have this check. I missed out this check when reworked the 6 patch bonding series in this particular filter function. > -- > Doug Ledford <dledford@xxxxxxxxxx> > GPG KeyID: B826A3330E572FDD > Key fingerprint = AE6B 1BDA 122B 23B4 265B 1274 B826 A333 0E57 2FDD