diff --git a/kernel/audit.c b/kernel/audit.c
index 993e445418a71f8eb272ef56e9d6152caf7f8037..b86007da8a3fd09931a17caa014c2aace8439fe8 100644
--- a/kernel/audit.c
+++ b/kernel/audit.c
@@ -611,13 +611,13 @@ static struct audit_buffer * audit_buffer_alloc(struct audit_context *ctx,
 	spin_unlock_irqrestore(&audit_freelist_lock, flags);
 
 	if (!ab) {
-		ab = kmalloc(sizeof(*ab), GFP_ATOMIC);
+		ab = kmalloc(sizeof(*ab), gfp_mask);
 		if (!ab)
 			goto err;
 	}
 	atomic_inc(&audit_backlog);
 
-	ab->skb = alloc_skb(AUDIT_BUFSIZ, GFP_ATOMIC);
+	ab->skb = alloc_skb(AUDIT_BUFSIZ, gfp_mask);
 	if (!ab->skb)
 		goto err;