alistair23-linux/drivers/infiniband/core
Jack Morgenstein ff7166c447 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>
2012-09-30 20:33:29 -07:00
..
addr.c IB: Use IS_ENABLED(CONFIG_IPV6) 2012-07-08 18:04:32 -07:00
agent.c
agent.h
cache.c IB/core: Handle table with full and partial membership for the same P_Key 2012-09-30 20:33:29 -07:00
cm.c IB/cm: Destroy idr as part of the module init error flow 2012-07-11 09:22:58 -07:00
cm_msgs.h IB/core: Move CM_xxx_ATTR_ID macros from cm_msgs.h to ib_cm.h 2012-07-08 18:05:06 -07:00
cma.c RDMA/cma: Use PTR_RET rather than if (IS_ERR(...)) + PTR_ERR 2012-07-27 13:05:18 -07:00
core_priv.h
device.c IB/core: Handle table with full and partial membership for the same P_Key 2012-09-30 20:33:29 -07:00
fmr_pool.c
iwcm.c RDMA/iwcm: Reject connect requests if cmid is not in LISTEN state 2012-03-07 15:14:53 -08:00
iwcm.h
mad.c IB/mad: Don't send response for failed MADs 2012-04-24 16:08:57 -07:00
mad_priv.h
mad_rmpp.c
mad_rmpp.h
Makefile
multicast.c
netlink.c netlink: add netlink_kernel_cfg parameter to netlink_kernel_create 2012-06-29 16:46:02 -07:00
packer.c
sa.h
sa_query.c IB/sa: Add GuidInfoRecord query support 2012-07-08 18:05:06 -07:00
smi.c
smi.h
sysfs.c IB/core: Don't return EINVAL from sysfs rate attribute for invalid speeds 2012-04-02 10:57:31 -07:00
ucm.c rdma/core: Fix sparse warnings 2012-01-04 09:17:45 -08:00
ucma.c RDMA/ucma.c: Fix for events with wrong context on iWARP 2012-08-13 13:08:35 -07:00
ud_header.c
umem.c IB/core: Fix mismatch between locked and pinned pages 2012-05-11 11:38:22 -07:00
user_mad.c
uverbs.h
uverbs_cmd.c Merge branches 'core', 'cxgb4', 'ipath', 'iser', 'lockdep', 'mlx4', 'nes', 'ocrdma', 'qib' and 'raw-qp' into for-linus 2012-05-21 09:00:47 -07:00
uverbs_main.c
uverbs_marshall.c
verbs.c Merge branches 'core', 'cxgb4', 'ipath', 'iser', 'lockdep', 'mlx4', 'nes', 'ocrdma', 'qib' and 'raw-qp' into for-linus 2012-05-21 09:00:47 -07:00