提交 32404fb7 编写于 作者: B Bart Van Assche 提交者: Doug Ledford

IB/rxe: Let the compiler check the type of the cleanup functions

Change the argument type of these functions from void * into
struct rxe_pool_entry *.
Signed-off-by: NBart Van Assche <bart.vanassche@sandisk.com>
Reviewed-by: NLeon Romanovsky <leonro@mellanox.com>
Reviewed-by: NAndrew Boyer <andrew.boyer@dell.com>
Cc: Moni Shoua <monis@mellanox.com>
Signed-off-by: NDoug Ledford <dledford@redhat.com>
上级 046ef24d
...@@ -156,9 +156,9 @@ int rxe_cq_post(struct rxe_cq *cq, struct rxe_cqe *cqe, int solicited) ...@@ -156,9 +156,9 @@ int rxe_cq_post(struct rxe_cq *cq, struct rxe_cqe *cqe, int solicited)
return 0; return 0;
} }
void rxe_cq_cleanup(void *arg) void rxe_cq_cleanup(struct rxe_pool_entry *arg)
{ {
struct rxe_cq *cq = arg; struct rxe_cq *cq = container_of(arg, typeof(*cq), pelem);
if (cq->queue) if (cq->queue)
rxe_queue_cleanup(cq->queue); rxe_queue_cleanup(cq->queue);
......
...@@ -64,7 +64,7 @@ int rxe_cq_resize_queue(struct rxe_cq *cq, int new_cqe, struct ib_udata *udata); ...@@ -64,7 +64,7 @@ int rxe_cq_resize_queue(struct rxe_cq *cq, int new_cqe, struct ib_udata *udata);
int rxe_cq_post(struct rxe_cq *cq, struct rxe_cqe *cqe, int solicited); int rxe_cq_post(struct rxe_cq *cq, struct rxe_cqe *cqe, int solicited);
void rxe_cq_cleanup(void *arg); void rxe_cq_cleanup(struct rxe_pool_entry *arg);
/* rxe_mcast.c */ /* rxe_mcast.c */
int rxe_mcast_get_grp(struct rxe_dev *rxe, union ib_gid *mgid, int rxe_mcast_get_grp(struct rxe_dev *rxe, union ib_gid *mgid,
...@@ -78,7 +78,7 @@ int rxe_mcast_drop_grp_elem(struct rxe_dev *rxe, struct rxe_qp *qp, ...@@ -78,7 +78,7 @@ int rxe_mcast_drop_grp_elem(struct rxe_dev *rxe, struct rxe_qp *qp,
void rxe_drop_all_mcast_groups(struct rxe_qp *qp); void rxe_drop_all_mcast_groups(struct rxe_qp *qp);
void rxe_mc_cleanup(void *arg); void rxe_mc_cleanup(struct rxe_pool_entry *arg);
/* rxe_mmap.c */ /* rxe_mmap.c */
struct rxe_mmap_info { struct rxe_mmap_info {
...@@ -137,7 +137,7 @@ int mem_check_range(struct rxe_mem *mem, u64 iova, size_t length); ...@@ -137,7 +137,7 @@ int mem_check_range(struct rxe_mem *mem, u64 iova, size_t length);
int rxe_mem_map_pages(struct rxe_dev *rxe, struct rxe_mem *mem, int rxe_mem_map_pages(struct rxe_dev *rxe, struct rxe_mem *mem,
u64 *page, int num_pages, u64 iova); u64 *page, int num_pages, u64 iova);
void rxe_mem_cleanup(void *arg); void rxe_mem_cleanup(struct rxe_pool_entry *arg);
int advance_dma_data(struct rxe_dma_info *dma, unsigned int length); int advance_dma_data(struct rxe_dma_info *dma, unsigned int length);
...@@ -162,7 +162,7 @@ void rxe_qp_error(struct rxe_qp *qp); ...@@ -162,7 +162,7 @@ void rxe_qp_error(struct rxe_qp *qp);
void rxe_qp_destroy(struct rxe_qp *qp); void rxe_qp_destroy(struct rxe_qp *qp);
void rxe_qp_cleanup(void *arg); void rxe_qp_cleanup(struct rxe_pool_entry *arg);
static inline int qp_num(struct rxe_qp *qp) static inline int qp_num(struct rxe_qp *qp)
{ {
......
...@@ -180,9 +180,9 @@ void rxe_drop_all_mcast_groups(struct rxe_qp *qp) ...@@ -180,9 +180,9 @@ void rxe_drop_all_mcast_groups(struct rxe_qp *qp)
} }
} }
void rxe_mc_cleanup(void *arg) void rxe_mc_cleanup(struct rxe_pool_entry *arg)
{ {
struct rxe_mc_grp *grp = arg; struct rxe_mc_grp *grp = container_of(arg, typeof(*grp), pelem);
struct rxe_dev *rxe = grp->rxe; struct rxe_dev *rxe = grp->rxe;
rxe_drop_key(grp); rxe_drop_key(grp);
......
...@@ -89,9 +89,9 @@ static void rxe_mem_init(int access, struct rxe_mem *mem) ...@@ -89,9 +89,9 @@ static void rxe_mem_init(int access, struct rxe_mem *mem)
mem->map_shift = ilog2(RXE_BUF_PER_MAP); mem->map_shift = ilog2(RXE_BUF_PER_MAP);
} }
void rxe_mem_cleanup(void *arg) void rxe_mem_cleanup(struct rxe_pool_entry *arg)
{ {
struct rxe_mem *mem = arg; struct rxe_mem *mem = container_of(arg, typeof(*mem), pelem);
int i; int i;
if (mem->umem) if (mem->umem)
......
...@@ -57,10 +57,12 @@ enum rxe_elem_type { ...@@ -57,10 +57,12 @@ enum rxe_elem_type {
RXE_NUM_TYPES, /* keep me last */ RXE_NUM_TYPES, /* keep me last */
}; };
struct rxe_pool_entry;
struct rxe_type_info { struct rxe_type_info {
const char *name; const char *name;
size_t size; size_t size;
void (*cleanup)(void *obj); void (*cleanup)(struct rxe_pool_entry *obj);
enum rxe_pool_flags flags; enum rxe_pool_flags flags;
u32 max_index; u32 max_index;
u32 min_index; u32 min_index;
...@@ -91,7 +93,7 @@ struct rxe_pool { ...@@ -91,7 +93,7 @@ struct rxe_pool {
spinlock_t pool_lock; /* pool spinlock */ spinlock_t pool_lock; /* pool spinlock */
size_t elem_size; size_t elem_size;
struct kref ref_cnt; struct kref ref_cnt;
void (*cleanup)(void *obj); void (*cleanup)(struct rxe_pool_entry *obj);
enum rxe_pool_state state; enum rxe_pool_state state;
enum rxe_pool_flags flags; enum rxe_pool_flags flags;
enum rxe_elem_type type; enum rxe_elem_type type;
......
...@@ -825,9 +825,9 @@ void rxe_qp_destroy(struct rxe_qp *qp) ...@@ -825,9 +825,9 @@ void rxe_qp_destroy(struct rxe_qp *qp)
} }
/* called when the last reference to the qp is dropped */ /* called when the last reference to the qp is dropped */
void rxe_qp_cleanup(void *arg) void rxe_qp_cleanup(struct rxe_pool_entry *arg)
{ {
struct rxe_qp *qp = arg; struct rxe_qp *qp = container_of(arg, typeof(*qp), pelem);
rxe_drop_all_mcast_groups(qp); rxe_drop_all_mcast_groups(qp);
......
...@@ -475,6 +475,6 @@ static inline struct rxe_mem *to_rmw(struct ib_mw *mw) ...@@ -475,6 +475,6 @@ static inline struct rxe_mem *to_rmw(struct ib_mw *mw)
int rxe_register_device(struct rxe_dev *rxe); int rxe_register_device(struct rxe_dev *rxe);
int rxe_unregister_device(struct rxe_dev *rxe); int rxe_unregister_device(struct rxe_dev *rxe);
void rxe_mc_cleanup(void *arg); void rxe_mc_cleanup(struct rxe_pool_entry *arg);
#endif /* RXE_VERBS_H */ #endif /* RXE_VERBS_H */
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册