]> git.baikalelectronics.ru Git - kernel.git/commit
IB/mlx4: Optimize do_slave_init
authorDoug Ledford <dledford@redhat.com>
Thu, 9 Jul 2015 14:21:08 +0000 (10:21 -0400)
committerDoug Ledford <dledford@redhat.com>
Tue, 14 Jul 2015 17:20:15 +0000 (13:20 -0400)
commit82f67831a1f7a9520afe17abf40cf343ff4e3d2f
tree2167b6bb6832d31bb7ba86ea4c4140ef4cd50bf6
parent88a2f76a3cc802a976034c2270b89c44dd289870
IB/mlx4: Optimize do_slave_init

There is little chance our memory allocation will fail, so we can
combine initializing the work structs with allocating them instead of
looping through all of them once to allocate and again to initialize.
Then when we need to actually find out if our device is up or in the
process of going down, have all of our work structs batched up, take the
spin_lock once and only once, and do all of the batch under the one
spin_lock invocation instead of incurring all of the locked memory cycles
we would otherwise incur to take/release the spin_lock over and over
again.

Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/mlx4/main.c