diff options
author | Goldwyn Rodrigues <rgoldwyn@suse.de> | 2011-07-07 13:20:40 -0400 |
---|---|---|
committer | Roland Dreier <roland@purestorage.com> | 2011-07-15 16:33:20 -0400 |
commit | cdb73db0b6bf7a1bcf5c788f0c8f803facb6e517 (patch) | |
tree | 3ed4a3b8eb06b63d29643920db97054b0db43051 /drivers/infiniband/hw/mthca/mthca_cmd.h | |
parent | 620917de59eeb934b9f8cf35cc2d95c1ac8ed0fc (diff) |
IB/mthca: Stop returning separate error and status from FW commands
Instead of having firmware command functions return an error and also
a status, leading to code like:
err = mthca_FW_COMMAND(..., &status);
if (err)
goto out;
if (status) {
err = -E...;
goto out;
}
all over the place, just handle the FW status inside the FW command
handling code (the way mlx4 does it), so we can simply write:
err = mthca_FW_COMMAND(...);
if (err)
goto out;
In addition to simplifying the source code, this also saves a healthy
chunk of text:
add/remove: 0/0 grow/shrink: 10/88 up/down: 510/-3357 (-2847)
function old new delta
static.trans_table 324 584 +260
mthca_cmd_poll 352 477 +125
mthca_cmd_wait 511 567 +56
mthca_table_put 213 240 +27
mthca_cleanup_db_tab 372 387 +15
__mthca_remove_one 314 323 +9
mthca_cleanup_user_db_tab 275 283 +8
__mthca_init_one 1738 1746 +8
mthca_cleanup 20 21 +1
mthca_MAD_IFC 1081 1082 +1
mthca_MGID_HASH 43 40 -3
mthca_MAP_ICM_AUX 23 20 -3
mthca_MAP_ICM 19 16 -3
mthca_MAP_FA 23 20 -3
mthca_READ_MGM 43 38 -5
mthca_QUERY_SRQ 43 38 -5
mthca_QUERY_QP 59 54 -5
mthca_HW2SW_SRQ 43 38 -5
mthca_HW2SW_MPT 60 55 -5
mthca_HW2SW_EQ 43 38 -5
mthca_HW2SW_CQ 43 38 -5
mthca_free_icm_table 120 114 -6
mthca_query_srq 214 206 -8
mthca_free_qp 662 654 -8
mthca_cmd 38 28 -10
mthca_alloc_db 1321 1311 -10
mthca_setup_hca 1067 1055 -12
mthca_WRITE_MTT 35 22 -13
mthca_WRITE_MGM 40 27 -13
mthca_UNMAP_ICM_AUX 36 23 -13
mthca_UNMAP_FA 36 23 -13
mthca_SYS_DIS 36 23 -13
mthca_SYNC_TPT 36 23 -13
mthca_SW2HW_SRQ 35 22 -13
mthca_SW2HW_MPT 35 22 -13
mthca_SW2HW_EQ 35 22 -13
mthca_SW2HW_CQ 35 22 -13
mthca_RUN_FW 36 23 -13
mthca_DISABLE_LAM 36 23 -13
mthca_CLOSE_IB 36 23 -13
mthca_CLOSE_HCA 38 25 -13
mthca_ARM_SRQ 39 26 -13
mthca_free_icms 178 164 -14
mthca_QUERY_DDR 389 375 -14
mthca_resize_cq 1063 1048 -15
mthca_unmap_eq_icm 123 107 -16
mthca_map_eq_icm 396 380 -16
mthca_cmd_box 90 74 -16
mthca_SET_IB 433 417 -16
mthca_RESIZE_CQ 369 353 -16
mthca_MAP_ICM_page 240 224 -16
mthca_MAP_EQ 183 167 -16
mthca_INIT_IB 473 457 -16
mthca_INIT_HCA 745 729 -16
mthca_map_user_db 816 798 -18
mthca_SYS_EN 157 139 -18
mthca_cleanup_qp_table 78 59 -19
mthca_cleanup_eq_table 168 149 -19
mthca_UNMAP_ICM 143 121 -22
mthca_modify_srq 172 149 -23
mthca_unmap_fmr 198 174 -24
mthca_query_qp 814 790 -24
mthca_query_pkey 343 319 -24
mthca_SET_ICM_SIZE 34 10 -24
mthca_QUERY_DEV_LIM 1870 1846 -24
mthca_map_cmd 1130 1105 -25
mthca_ENABLE_LAM 401 375 -26
mthca_modify_port 247 220 -27
mthca_query_device 884 850 -34
mthca_NOP 75 41 -34
mthca_table_get 287 249 -38
mthca_init_qp_table 333 293 -40
mthca_MODIFY_QP 348 308 -40
mthca_close_hca 131 89 -42
mthca_free_eq 435 390 -45
mthca_query_port 755 705 -50
mthca_free_cq 581 528 -53
mthca_alloc_icm_table 578 524 -54
mthca_multicast_attach 1041 986 -55
mthca_init_hca 326 271 -55
mthca_query_gid 487 431 -56
mthca_free_srq 524 468 -56
mthca_free_mr 168 111 -57
mthca_create_eq 1560 1501 -59
mthca_multicast_detach 790 728 -62
mthca_write_mtt 918 854 -64
mthca_register_device 1406 1342 -64
mthca_fmr_alloc 947 883 -64
mthca_mr_alloc 652 582 -70
mthca_process_mad 1242 1164 -78
mthca_dev_lim 910 830 -80
find_mgm 482 400 -82
mthca_modify_qp 3852 3753 -99
mthca_init_cq 1281 1181 -100
mthca_alloc_srq 1719 1610 -109
mthca_init_eq_table 1807 1679 -128
mthca_init_tavor 761 491 -270
mthca_init_arbel 2617 2098 -519
Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.de>
Diffstat (limited to 'drivers/infiniband/hw/mthca/mthca_cmd.h')
-rw-r--r-- | drivers/infiniband/hw/mthca/mthca_cmd.h | 93 |
1 files changed, 44 insertions, 49 deletions
diff --git a/drivers/infiniband/hw/mthca/mthca_cmd.h b/drivers/infiniband/hw/mthca/mthca_cmd.h index 6efd3265f248..f952244c54de 100644 --- a/drivers/infiniband/hw/mthca/mthca_cmd.h +++ b/drivers/infiniband/hw/mthca/mthca_cmd.h | |||
@@ -252,79 +252,74 @@ struct mthca_mailbox *mthca_alloc_mailbox(struct mthca_dev *dev, | |||
252 | gfp_t gfp_mask); | 252 | gfp_t gfp_mask); |
253 | void mthca_free_mailbox(struct mthca_dev *dev, struct mthca_mailbox *mailbox); | 253 | void mthca_free_mailbox(struct mthca_dev *dev, struct mthca_mailbox *mailbox); |
254 | 254 | ||
255 | int mthca_SYS_EN(struct mthca_dev *dev, u8 *status); | 255 | int mthca_SYS_EN(struct mthca_dev *dev); |
256 | int mthca_SYS_DIS(struct mthca_dev *dev, u8 *status); | 256 | int mthca_SYS_DIS(struct mthca_dev *dev); |
257 | int mthca_MAP_FA(struct mthca_dev *dev, struct mthca_icm *icm, u8 *status); | 257 | int mthca_MAP_FA(struct mthca_dev *dev, struct mthca_icm *icm); |
258 | int mthca_UNMAP_FA(struct mthca_dev *dev, u8 *status); | 258 | int mthca_UNMAP_FA(struct mthca_dev *dev); |
259 | int mthca_RUN_FW(struct mthca_dev *dev, u8 *status); | 259 | int mthca_RUN_FW(struct mthca_dev *dev); |
260 | int mthca_QUERY_FW(struct mthca_dev *dev, u8 *status); | 260 | int mthca_QUERY_FW(struct mthca_dev *dev); |
261 | int mthca_ENABLE_LAM(struct mthca_dev *dev, u8 *status); | 261 | int mthca_ENABLE_LAM(struct mthca_dev *dev); |
262 | int mthca_DISABLE_LAM(struct mthca_dev *dev, u8 *status); | 262 | int mthca_DISABLE_LAM(struct mthca_dev *dev); |
263 | int mthca_QUERY_DDR(struct mthca_dev *dev, u8 *status); | 263 | int mthca_QUERY_DDR(struct mthca_dev *dev); |
264 | int mthca_QUERY_DEV_LIM(struct mthca_dev *dev, | 264 | int mthca_QUERY_DEV_LIM(struct mthca_dev *dev, |
265 | struct mthca_dev_lim *dev_lim, u8 *status); | 265 | struct mthca_dev_lim *dev_lim); |
266 | int mthca_QUERY_ADAPTER(struct mthca_dev *dev, | 266 | int mthca_QUERY_ADAPTER(struct mthca_dev *dev, |
267 | struct mthca_adapter *adapter, u8 *status); | 267 | struct mthca_adapter *adapter); |
268 | int mthca_INIT_HCA(struct mthca_dev *dev, | 268 | int mthca_INIT_HCA(struct mthca_dev *dev, |
269 | struct mthca_init_hca_param *param, | 269 | struct mthca_init_hca_param *param); |
270 | u8 *status); | ||
271 | int mthca_INIT_IB(struct mthca_dev *dev, | 270 | int mthca_INIT_IB(struct mthca_dev *dev, |
272 | struct mthca_init_ib_param *param, | 271 | struct mthca_init_ib_param *param, |
273 | int port, u8 *status); | 272 | int port); |
274 | int mthca_CLOSE_IB(struct mthca_dev *dev, int port, u8 *status); | 273 | int mthca_CLOSE_IB(struct mthca_dev *dev, int port); |
275 | int mthca_CLOSE_HCA(struct mthca_dev *dev, int panic, u8 *status); | 274 | int mthca_CLOSE_HCA(struct mthca_dev *dev, int panic); |
276 | int mthca_SET_IB(struct mthca_dev *dev, struct mthca_set_ib_param *param, | 275 | int mthca_SET_IB(struct mthca_dev *dev, struct mthca_set_ib_param *param, |
277 | int port, u8 *status); | 276 | int port); |
278 | int mthca_MAP_ICM(struct mthca_dev *dev, struct mthca_icm *icm, u64 virt, u8 *status); | 277 | int mthca_MAP_ICM(struct mthca_dev *dev, struct mthca_icm *icm, u64 virt); |
279 | int mthca_MAP_ICM_page(struct mthca_dev *dev, u64 dma_addr, u64 virt, u8 *status); | 278 | int mthca_MAP_ICM_page(struct mthca_dev *dev, u64 dma_addr, u64 virt); |
280 | int mthca_UNMAP_ICM(struct mthca_dev *dev, u64 virt, u32 page_count, u8 *status); | 279 | int mthca_UNMAP_ICM(struct mthca_dev *dev, u64 virt, u32 page_count); |
281 | int mthca_MAP_ICM_AUX(struct mthca_dev *dev, struct mthca_icm *icm, u8 *status); | 280 | int mthca_MAP_ICM_AUX(struct mthca_dev *dev, struct mthca_icm *icm); |
282 | int mthca_UNMAP_ICM_AUX(struct mthca_dev *dev, u8 *status); | 281 | int mthca_UNMAP_ICM_AUX(struct mthca_dev *dev); |
283 | int mthca_SET_ICM_SIZE(struct mthca_dev *dev, u64 icm_size, u64 *aux_pages, | 282 | int mthca_SET_ICM_SIZE(struct mthca_dev *dev, u64 icm_size, u64 *aux_pages); |
284 | u8 *status); | ||
285 | int mthca_SW2HW_MPT(struct mthca_dev *dev, struct mthca_mailbox *mailbox, | 283 | int mthca_SW2HW_MPT(struct mthca_dev *dev, struct mthca_mailbox *mailbox, |
286 | int mpt_index, u8 *status); | 284 | int mpt_index); |
287 | int mthca_HW2SW_MPT(struct mthca_dev *dev, struct mthca_mailbox *mailbox, | 285 | int mthca_HW2SW_MPT(struct mthca_dev *dev, struct mthca_mailbox *mailbox, |
288 | int mpt_index, u8 *status); | 286 | int mpt_index); |
289 | int mthca_WRITE_MTT(struct mthca_dev *dev, struct mthca_mailbox *mailbox, | 287 | int mthca_WRITE_MTT(struct mthca_dev *dev, struct mthca_mailbox *mailbox, |
290 | int num_mtt, u8 *status); | 288 | int num_mtt); |
291 | int mthca_SYNC_TPT(struct mthca_dev *dev, u8 *status); | 289 | int mthca_SYNC_TPT(struct mthca_dev *dev); |
292 | int mthca_MAP_EQ(struct mthca_dev *dev, u64 event_mask, int unmap, | 290 | int mthca_MAP_EQ(struct mthca_dev *dev, u64 event_mask, int unmap, |
293 | int eq_num, u8 *status); | 291 | int eq_num); |
294 | int mthca_SW2HW_EQ(struct mthca_dev *dev, struct mthca_mailbox *mailbox, | 292 | int mthca_SW2HW_EQ(struct mthca_dev *dev, struct mthca_mailbox *mailbox, |
295 | int eq_num, u8 *status); | 293 | int eq_num); |
296 | int mthca_HW2SW_EQ(struct mthca_dev *dev, struct mthca_mailbox *mailbox, | 294 | int mthca_HW2SW_EQ(struct mthca_dev *dev, struct mthca_mailbox *mailbox, |
297 | int eq_num, u8 *status); | 295 | int eq_num); |
298 | int mthca_SW2HW_CQ(struct mthca_dev *dev, struct mthca_mailbox *mailbox, | 296 | int mthca_SW2HW_CQ(struct mthca_dev *dev, struct mthca_mailbox *mailbox, |
299 | int cq_num, u8 *status); | 297 | int cq_num); |
300 | int mthca_HW2SW_CQ(struct mthca_dev *dev, struct mthca_mailbox *mailbox, | 298 | int mthca_HW2SW_CQ(struct mthca_dev *dev, struct mthca_mailbox *mailbox, |
301 | int cq_num, u8 *status); | 299 | int cq_num); |
302 | int mthca_RESIZE_CQ(struct mthca_dev *dev, int cq_num, u32 lkey, u8 log_size, | 300 | int mthca_RESIZE_CQ(struct mthca_dev *dev, int cq_num, u32 lkey, u8 log_size); |
303 | u8 *status); | ||
304 | int mthca_SW2HW_SRQ(struct mthca_dev *dev, struct mthca_mailbox *mailbox, | 301 | int mthca_SW2HW_SRQ(struct mthca_dev *dev, struct mthca_mailbox *mailbox, |
305 | int srq_num, u8 *status); | 302 | int srq_num); |
306 | int mthca_HW2SW_SRQ(struct mthca_dev *dev, struct mthca_mailbox *mailbox, | 303 | int mthca_HW2SW_SRQ(struct mthca_dev *dev, struct mthca_mailbox *mailbox, |
307 | int srq_num, u8 *status); | 304 | int srq_num); |
308 | int mthca_QUERY_SRQ(struct mthca_dev *dev, u32 num, | 305 | int mthca_QUERY_SRQ(struct mthca_dev *dev, u32 num, |
309 | struct mthca_mailbox *mailbox, u8 *status); | 306 | struct mthca_mailbox *mailbox); |
310 | int mthca_ARM_SRQ(struct mthca_dev *dev, int srq_num, int limit, u8 *status); | 307 | int mthca_ARM_SRQ(struct mthca_dev *dev, int srq_num, int limit); |
311 | int mthca_MODIFY_QP(struct mthca_dev *dev, enum ib_qp_state cur, | 308 | int mthca_MODIFY_QP(struct mthca_dev *dev, enum ib_qp_state cur, |
312 | enum ib_qp_state next, u32 num, int is_ee, | 309 | enum ib_qp_state next, u32 num, int is_ee, |
313 | struct mthca_mailbox *mailbox, u32 optmask, | 310 | struct mthca_mailbox *mailbox, u32 optmask); |
314 | u8 *status); | ||
315 | int mthca_QUERY_QP(struct mthca_dev *dev, u32 num, int is_ee, | 311 | int mthca_QUERY_QP(struct mthca_dev *dev, u32 num, int is_ee, |
316 | struct mthca_mailbox *mailbox, u8 *status); | 312 | struct mthca_mailbox *mailbox); |
317 | int mthca_CONF_SPECIAL_QP(struct mthca_dev *dev, int type, u32 qpn, | 313 | int mthca_CONF_SPECIAL_QP(struct mthca_dev *dev, int type, u32 qpn); |
318 | u8 *status); | ||
319 | int mthca_MAD_IFC(struct mthca_dev *dev, int ignore_mkey, int ignore_bkey, | 314 | int mthca_MAD_IFC(struct mthca_dev *dev, int ignore_mkey, int ignore_bkey, |
320 | int port, struct ib_wc *in_wc, struct ib_grh *in_grh, | 315 | int port, struct ib_wc *in_wc, struct ib_grh *in_grh, |
321 | void *in_mad, void *response_mad, u8 *status); | 316 | void *in_mad, void *response_mad); |
322 | int mthca_READ_MGM(struct mthca_dev *dev, int index, | 317 | int mthca_READ_MGM(struct mthca_dev *dev, int index, |
323 | struct mthca_mailbox *mailbox, u8 *status); | 318 | struct mthca_mailbox *mailbox); |
324 | int mthca_WRITE_MGM(struct mthca_dev *dev, int index, | 319 | int mthca_WRITE_MGM(struct mthca_dev *dev, int index, |
325 | struct mthca_mailbox *mailbox, u8 *status); | 320 | struct mthca_mailbox *mailbox); |
326 | int mthca_MGID_HASH(struct mthca_dev *dev, struct mthca_mailbox *mailbox, | 321 | int mthca_MGID_HASH(struct mthca_dev *dev, struct mthca_mailbox *mailbox, |
327 | u16 *hash, u8 *status); | 322 | u16 *hash); |
328 | int mthca_NOP(struct mthca_dev *dev, u8 *status); | 323 | int mthca_NOP(struct mthca_dev *dev); |
329 | 324 | ||
330 | #endif /* MTHCA_CMD_H */ | 325 | #endif /* MTHCA_CMD_H */ |