diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2013-03-16 12:48:11 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-03-20 13:05:00 -0700 |
commit | 8c97feb5edd118fe633ed29773c599536d562d43 (patch) | |
tree | 95bae3db178398cd3d451efed85c9ee2b69dd1f0 /security | |
parent | e55005034b11c0dd52ac08b7f769ec410b6bfa1f (diff) | |
download | lwn-8c97feb5edd118fe633ed29773c599536d562d43.tar.gz lwn-8c97feb5edd118fe633ed29773c599536d562d43.zip |
selinux: use GFP_ATOMIC under spin_lock
commit 4502403dcf8f5c76abd4dbab8726c8e4ecb5cd34 upstream.
The call tree here is:
sk_clone_lock() <- takes bh_lock_sock(newsk);
xfrm_sk_clone_policy()
__xfrm_sk_clone_policy()
clone_policy() <- uses GFP_ATOMIC for allocations
security_xfrm_policy_clone()
security_ops->xfrm_policy_clone_security()
selinux_xfrm_policy_clone()
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: James Morris <james.l.morris@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'security')
-rw-r--r-- | security/selinux/xfrm.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/security/selinux/xfrm.c b/security/selinux/xfrm.c index 48665ecd1197..8ab295154517 100644 --- a/security/selinux/xfrm.c +++ b/security/selinux/xfrm.c @@ -310,7 +310,7 @@ int selinux_xfrm_policy_clone(struct xfrm_sec_ctx *old_ctx, if (old_ctx) { new_ctx = kmalloc(sizeof(*old_ctx) + old_ctx->ctx_len, - GFP_KERNEL); + GFP_ATOMIC); if (!new_ctx) return -ENOMEM; |