diff options
author | Jack Morgenstein <jackm@dev.mellanox.co.il> | 2012-08-03 10:40:38 +0200 |
---|---|---|
committer | Roland Dreier <roland@purestorage.com> | 2012-10-01 05:33:29 +0200 |
commit | ff7166c447df23a61e4f51bf748319dc6728dc74 (patch) | |
tree | c37b966015832ad93661cbcbce6e2f8fb6d276c2 /include/rdma | |
parent | IB/core: Reserve bits in enum ib_qp_create_flags for low-level driver use (diff) | |
download | linux-ff7166c447df23a61e4f51bf748319dc6728dc74.tar.xz linux-ff7166c447df23a61e4f51bf748319dc6728dc74.zip |
IB/core: Handle table with full and partial membership for the same P_Key
Extend the cached and non-cached P_Key table lookups to handle limited
and full membership of the same P_Key to co-exist in the P_Key table.
This is necessary for SR-IOV, to allow for some guests would to have
the full membership P_Key in their virtual P_Key table, while other
guests on the same physical HCA would have the limited one.
To support this, we need both the limited and full membership P_Keys
to be present in the master's (hypervisor physical port) P_Key table.
The algorithm for handling P_Key tables which contain both the limited
and the full membership versions of the same P_Key works as follows:
When scanning the P_Key table for a 15-bit P_Key:
A. If there is a full member version of that P_Key anywhere in the
table, return its index (even if a limited-member version of the
P_Key exists earlier in the table).
B. If the full member version is not in the table, but the
limited-member version is in the table, return the index of the
limited P_Key.
Signed-off-by: Liran Liss <liranl@mellanox.com>
Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'include/rdma')
0 files changed, 0 insertions, 0 deletions