Commit:     36026ecc20e5df722bbe2ea9e451c73d686ef107
Parent:     7a883eaf62f4b943ebec738ce3b0796c67ef5d32
Author:     Moni Shoua <[EMAIL PROTECTED]>
AuthorDate: Mon Jul 23 10:07:42 2007 +0300
Committer:  Roland Dreier <[EMAIL PROTECTED]>
CommitDate: Fri Aug 3 10:45:17 2007 -0700

    IB/core: Ignore membership bit in ib_find_pkey()
    ib_find_pkey() is used as a replacement for ib_find_cached_pkey(), and
    the original function ignored the membership bit when searching for a
    P_Key, so ib_find_pkey() should ignore the bit too.
    In particular, IPoIB turns on the P_Key membership bit of limited
    membership P_Keys when creating a child interface and looks for the
    full membership P_key.  This broke if a port was a partial member of a
    partition when IPoIB switched from ib_find_cached_pkey() to
    ib_find_pkey(), and this change fixes things again.
    Signed-off-by: Moni Shoua <[EMAIL PROTECTED]>
    Signed-off-by: Roland Dreier <[EMAIL PROTECTED]>
 drivers/infiniband/core/device.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c
index 3ada17c..2506c43 100644
--- a/drivers/infiniband/core/device.c
+++ b/drivers/infiniband/core/device.c
@@ -702,7 +702,7 @@ int ib_find_pkey(struct ib_device *device,
                if (ret)
                        return ret;
-               if (pkey == tmp_pkey) {
+               if ((pkey & 0x7fff) == (tmp_pkey & 0x7fff)) {
                        *index = i;
                        return 0;
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to