From: Julia Lawall on
From: Julia Lawall <julia(a)diku.dk>

The containing function is called from several places. At one of them, in
the function untag_chunk, the spin lock &entry->lock is held.

The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@gfp exists@
identifier fn;
position p;
@@

fn(...) {
.... when != spin_unlock
when any
GFP_KERNEL@p
... when any
}

@locked@
identifier gfp.fn;
@@

spin_lock(...)
.... when != spin_unlock
fn(...)

@depends on locked@
position gfp.p;
@@

- GFP_KERNEL@p
+ GFP_ATOMIC
// </smpl>

Signed-off-by: Julia Lawall <julia(a)diku.dk>

---
kernel/audit_tree.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff -u -p a/kernel/audit_tree.c b/kernel/audit_tree.c
--- a/kernel/audit_tree.c
+++ b/kernel/audit_tree.c
@@ -147,7 +147,7 @@ static struct audit_chunk *alloc_chunk(i
int i;

size = offsetof(struct audit_chunk, owners) + count * sizeof(struct node);
- chunk = kzalloc(size, GFP_KERNEL);
+ chunk = kzalloc(size, GFP_ATOMIC);
if (!chunk)
return NULL;

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