2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-04 03:33:58 +08:00
linux-next/drivers/infiniband
Jason Gunthorpe 25405d98a2 IB/ipoib: Do not remove child devices from within the ndo_uninit
Switching to priv_destructor and needs_free_netdev created a subtle
ordering problem in ipoib_remove_one.

Now that unregister_netdev frees the netdev and priv we must ensure that
the children are unregistered before trying to unregister the parent,
or child unregister will use after free.

The solution is to unregister the children, then parent, in the same batch
all while holding the rtnl_lock. This closes all the races where a new
child could have been added and ensures proper ordering.

Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
2018-08-02 20:27:43 -06:00
..
core IB/uverbs: Allow all DESTROY commands to succeed after disassociate 2018-08-01 14:55:48 -06:00
hw RDMA/netdev: Use priv_destructor for netdev cleanup 2018-08-02 20:27:43 -06:00
sw RDMA/providers: Fix return value from create_srq callbacks 2018-07-30 20:29:45 -06:00
ulp IB/ipoib: Do not remove child devices from within the ndo_uninit 2018-08-02 20:27:43 -06:00
Kconfig RDMA/ucm: Mark UCM interface as BROKEN 2018-05-24 09:39:25 -06:00
Makefile IB/rdmavt: Create module framework and handle driver registration 2016-03-10 20:37:04 -05:00