RDMA/rxe: Use driver_unregister and new unregistration API
rxe does not have correct locking for its registration/unregistration paths, use the core code to handle it instead. In this mode ib_unregister_device will also do the dealloc, so rxe is required to do clean up from a callback. The core code ensures that unregistration is done only once, and generally takes care of locking and concurrency problems for rxe. Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
@@ -96,15 +96,9 @@ static inline u32 rxe_crc32(struct rxe_dev *rxe,
|
||||
void rxe_set_mtu(struct rxe_dev *rxe, unsigned int dev_mtu);
|
||||
|
||||
int rxe_add(struct rxe_dev *rxe, unsigned int mtu);
|
||||
void rxe_remove(struct rxe_dev *rxe);
|
||||
void rxe_remove_all(void);
|
||||
|
||||
void rxe_rcv(struct sk_buff *skb);
|
||||
|
||||
static inline void rxe_dev_put(struct rxe_dev *rxe)
|
||||
{
|
||||
kref_put(&rxe->ref_cnt, rxe_release);
|
||||
}
|
||||
struct rxe_dev *get_rxe_by_name(const char *name);
|
||||
|
||||
/* The caller must do a matching ib_device_put(&dev->ib_dev) */
|
||||
|
Reference in New Issue
Block a user