summaryrefslogtreecommitdiff
path: root/drivers/infiniband/core/security.c
diff options
context:
space:
mode:
authorJoel Stanley <joel@jms.id.au>2019-05-08 16:48:45 +0300
committerJoel Stanley <joel@jms.id.au>2019-05-08 16:48:48 +0300
commitd09fc0c4bdfbcbe251df247b5a94e2a07dec9c2f (patch)
tree893d98100d3ede2ff76905a67e1b9798c8c88868 /drivers/infiniband/core/security.c
parent76cc3bd0c342199b0bc0fd6afc7035274bf7a718 (diff)
parent274ede3e1a5fb3d0fd33acafb08993e95972c51f (diff)
downloadlinux-dev-5.0.tar.xz
Merge tag 'v5.0.14' into dev-5.0dev-5.0
This is the 5.0.14 stable release Signed-off-by: Joel Stanley <joel@jms.id.au>
Diffstat (limited to 'drivers/infiniband/core/security.c')
-rw-r--r--drivers/infiniband/core/security.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/infiniband/core/security.c b/drivers/infiniband/core/security.c
index 1efadbccf394..7662e9347238 100644
--- a/drivers/infiniband/core/security.c
+++ b/drivers/infiniband/core/security.c
@@ -710,16 +710,20 @@ int ib_mad_agent_security_setup(struct ib_mad_agent *agent,
dev_name(&agent->device->dev),
agent->port_num);
if (ret)
- return ret;
+ goto free_security;
agent->lsm_nb.notifier_call = ib_mad_agent_security_change;
ret = register_lsm_notifier(&agent->lsm_nb);
if (ret)
- return ret;
+ goto free_security;
agent->smp_allowed = true;
agent->lsm_nb_reg = true;
return 0;
+
+free_security:
+ security_ib_free_security(agent->security);
+ return ret;
}
void ib_mad_agent_security_cleanup(struct ib_mad_agent *agent)
@@ -727,9 +731,10 @@ void ib_mad_agent_security_cleanup(struct ib_mad_agent *agent)
if (!rdma_protocol_ib(agent->device, agent->port_num))
return;
- security_ib_free_security(agent->security);
if (agent->lsm_nb_reg)
unregister_lsm_notifier(&agent->lsm_nb);
+
+ security_ib_free_security(agent->security);
}
int ib_mad_enforce_security(struct ib_mad_agent_private *map, u16 pkey_index)