diff options
author | Zach Brown <zach.brown@oracle.com> | 2010-05-18 15:44:50 -0700 |
---|---|---|
committer | Andy Grover <andy.grover@oracle.com> | 2010-09-08 18:15:16 -0700 |
commit | 89bf9d4158b5a1b6bd00960eb2e47601ec8cc138 (patch) | |
tree | e11c5ea0b69fb1bc53a03f83570e160dbe3b005f /net/rds/ib.c | |
parent | a46ca94e7fb2c93a59e08b42fd77d8c478fda5fc (diff) | |
download | linux-89bf9d4158b5a1b6bd00960eb2e47601ec8cc138.tar.bz2 |
RDS/IB: get the xmit max_sge from the RDS IB device on the connection
rds_ib_xmit_rdma() was calling ib_get_client_data() to get at the rds_ibdevice
just to get the max_sge for the transmit. This patch instead has it get it
directly off the rds_ibdev which is stored on the connection.
The current code won't free the rds_ibdev until all the IB connections that use
it are freed. So it's safe to reference the rds_ibdev this way. In the future
it also makes it easier to support proper reference counting of the rds_ibdev
struct.
As an additional bonus, this gets rid of the performance hit of calling in to
the IB stack to look up the rds_ibdev. The current implementation in the IB
stack acquires an interrupt blocking spinlock to protect the registration of
client callback data.
Signed-off-by: Zach Brown <zach.brown@oracle.com>
Diffstat (limited to 'net/rds/ib.c')
0 files changed, 0 insertions, 0 deletions