[GIT] SELinux xfrm kmalloc fix

From: James Morris
Date: Mon Mar 18 2013 - 10:25:52 EST


Please apply.

The following changes since commit a937536b868b8369b98967929045f1df54234323:

Linux 3.9-rc3 (2013-03-17 15:59:32 -0700)

are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security.git for-linus

Dan Carpenter (1):
selinux: use GFP_ATOMIC under spin_lock

security/selinux/xfrm.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

commit 4502403dcf8f5c76abd4dbab8726c8e4ecb5cd34
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date: Sat Mar 16 12:48:11 2013 +0300

selinux: use GFP_ATOMIC under spin_lock

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@xxxxxxxxxx>
Cc: stable@xxxxxxxxxx
Signed-off-by: James Morris <james.l.morris@xxxxxxxxxx>

diff --git a/security/selinux/xfrm.c b/security/selinux/xfrm.c
index 48665ec..8ab2951 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;

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/