diff options
author | Yosef Etigin <yosefe@voltaire.com> | 2007-05-14 00:26:51 -0400 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2007-05-19 11:51:53 -0400 |
commit | 5eb620c81ce35aa0c533131bf4d06c4c8c2bfadf (patch) | |
tree | 8c6346a3af0611b7b2e1b8df41cb058b5fc145e5 /include/rdma | |
parent | 8b8c8bca3a63073bac20f0fca178e00fdf7f5a09 (diff) |
IB/core: Add helpers for uncached GID and P_Key searches
Add ib_find_gid() and ib_find_pkey() functions that use uncached device
queries. The calls might block but the returns are always up-to-date.
Cache P_Key and GID table lengths in core to avoid extra port info queries.
Signed-off-by: Yosef Etigin <yosefe@voltaire.com>
Acked-by: Michael S. Tsirkin <mst@dev.mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'include/rdma')
-rw-r--r-- | include/rdma/ib_verbs.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h index 47cefca59c89..0627a6aa282a 100644 --- a/include/rdma/ib_verbs.h +++ b/include/rdma/ib_verbs.h | |||
@@ -890,6 +890,8 @@ struct ib_device { | |||
890 | spinlock_t client_data_lock; | 890 | spinlock_t client_data_lock; |
891 | 891 | ||
892 | struct ib_cache cache; | 892 | struct ib_cache cache; |
893 | int *pkey_tbl_len; | ||
894 | int *gid_tbl_len; | ||
893 | 895 | ||
894 | u32 flags; | 896 | u32 flags; |
895 | 897 | ||
@@ -1118,6 +1120,12 @@ int ib_modify_port(struct ib_device *device, | |||
1118 | u8 port_num, int port_modify_mask, | 1120 | u8 port_num, int port_modify_mask, |
1119 | struct ib_port_modify *port_modify); | 1121 | struct ib_port_modify *port_modify); |
1120 | 1122 | ||
1123 | int ib_find_gid(struct ib_device *device, union ib_gid *gid, | ||
1124 | u8 *port_num, u16 *index); | ||
1125 | |||
1126 | int ib_find_pkey(struct ib_device *device, | ||
1127 | u8 port_num, u16 pkey, u16 *index); | ||
1128 | |||
1121 | /** | 1129 | /** |
1122 | * ib_alloc_pd - Allocates an unused protection domain. | 1130 | * ib_alloc_pd - Allocates an unused protection domain. |
1123 | * @device: The device on which to allocate the protection domain. | 1131 | * @device: The device on which to allocate the protection domain. |