IB/core: Only maintain real QPs in the security lists
authorDaniel Jurgens <danielj@mellanox.com>
Tue, 7 Nov 2017 16:33:26 +0000 (18:33 +0200)
committerDoug Ledford <dledford@redhat.com>
Mon, 13 Nov 2017 21:24:17 +0000 (16:24 -0500)
commit877add28178a7fa3c68f29c450d050a8e6513f08
tree0c01c0415cfddae8e0e8bc59da8f2a64c8754f9a
parentf4e96c1a717176dc52843a41b549aaa9128279c2
IB/core: Only maintain real QPs in the security lists

When modify QP is called on a shared QP update the security context for
the real QP. When security is subsequently enforced the shared QP
handles will be checked as well.

Without this change shared QP handles get added to the port/pkey lists,
which is a bug, because not all shared QP handles will be checked for
access. Also the shared QP security context wouldn't get removed from
the port/pkey lists causing access to free memory and list corruption
when they are destroyed.

Cc: stable@vger.kernel.org
Fixes: d291f1a65232 ("IB/core: Enforce PKey security on QPs")
Signed-off-by: Daniel Jurgens <danielj@mellanox.com>
Reviewed-by: Parav Pandit <parav@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/core/security.c