diff options
| author | Roland Dreier <rolandd@cisco.com> | 2008-07-14 23:48:49 -0700 | 
|---|---|---|
| committer | Roland Dreier <rolandd@cisco.com> | 2008-07-14 23:48:49 -0700 | 
| commit | 1ff66e8c1faee7c2711b84b9c89e1c5fcd767839 (patch) | |
| tree | 7a42adc119605abd1acb54d16b8a93f1effd2069 /lib/genalloc.c | |
| parent | ee1e2c82c245a5fb2864e9dbcdaab3390fde3fcc (diff) | |
RDMA/nes: Encapsulate logic nes_put_cqp_request()
The iw_nes driver repeats the logic
	if (atomic_dec_and_test(&cqp_request->refcount)) {
		if (cqp_request->dynamic) {
			kfree(cqp_request);
		} else {
			spin_lock_irqsave(&nesdev->cqp.lock, flags);
			list_add_tail(&cqp_request->list, &nesdev->cqp_avail_reqs);
			spin_unlock_irqrestore(&nesdev->cqp.lock, flags);
		}
	}
over and over.  Wrap this up in functions nes_free_cqp_request() and
nes_put_cqp_request() to simplify such code.
In addition to making the source smaller and more readable, this shrinks
the compiled code quite a bit:
add/remove: 2/0 grow/shrink: 0/13 up/down: 164/-1692 (-1528)
function                                     old     new   delta
nes_free_cqp_request                           -     147    +147
nes_put_cqp_request                            -      17     +17
nes_modify_qp                               2316    2293     -23
nes_hw_modify_qp                             737     657     -80
nes_dereg_mr                                 945     860     -85
flush_wqes                                   501     416     -85
nes_manage_apbvt                             648     560     -88
nes_reg_mr                                  1117    1026     -91
nes_cqp_ce_handler                           927     769    -158
nes_alloc_mw                                1052     884    -168
nes_create_qp                               5314    5141    -173
nes_alloc_fmr                               2212    2035    -177
nes_destroy_cq                              1097     918    -179
nes_create_cq                               2787    2598    -189
nes_dealloc_mw                               762     566    -196
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Acked-by: Faisal Latif <flatif@neteffect.com>
Diffstat (limited to 'lib/genalloc.c')
0 files changed, 0 insertions, 0 deletions
