On Thu, Mar 30, 2023 at 08:51:44AM +0900, Tetsuo Handa wrote: > On 2023/03/30 0:44, Jason Gunthorpe wrote: > >> The caller of ib_register_device() (i.e. siw_device_register() from > >> siw_newlink()) is assuming that somebody will call __ib_unregister_device(), > >> but nobody is calling __ib_unregister_device(). > > > > On the success path this stuff happens during dellink > > > > "struct rdma_link_ops" has "newlink" callback but does not have "dellink" callback. > "struct rtnl_link_ops" has both "newlink" callback and "dellink" callback, but > only ipoib_netlink.c defines it inside drivers/infiniband/ directory. > > Where is the dellink you are talking about? > I'm not familiar with rdma code. Please explain using specific function/symbol names. Your test code deletes a vlan If SIW is attached to a vlan then SIW will destroy itself based on a net notifier Look at siw_netdev_event: case NETDEV_UNREGISTER: ib_unregister_device_queued(&sdev->base_dev); break; Jason