From: Julia Lawall Date: Fri, 30 Jul 2010 23:56:39 +0000 (+0000) Subject: net/rose: Use GFP_ATOMIC X-Git-Tag: v3.0~4150^2~48 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e2e0c7c9ddbe6b79fe647aca5eea3a405d38ada4;p=platform%2Fkernel%2Flinux-amlogic.git net/rose: Use GFP_ATOMIC The other calls to kmalloc in the same function use GFP_ATOMIC, and indeed two locks are held within the body of the function. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @@ identifier f; @@ *f(...,GFP_ATOMIC,...) ... when != spin_unlock(...) when != read_unlock(...) when != write_unlock(...) when != read_unlock_irq(...) when != write_unlock_irq(...) when != read_unlock_irqrestore(...) when != write_unlock_irqrestore(...) when != spin_unlock_irq(...) when != spin_unlock_irqrestore(...) *f(...,GFP_KERNEL,...) // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller --- diff --git a/net/rose/rose_route.c b/net/rose/rose_route.c index cbc244a1..b4fdaac 100644 --- a/net/rose/rose_route.c +++ b/net/rose/rose_route.c @@ -109,7 +109,9 @@ static int __must_check rose_add_node(struct rose_route_struct *rose_route, init_timer(&rose_neigh->t0timer); if (rose_route->ndigis != 0) { - if ((rose_neigh->digipeat = kmalloc(sizeof(ax25_digi), GFP_KERNEL)) == NULL) { + rose_neigh->digipeat = + kmalloc(sizeof(ax25_digi), GFP_ATOMIC); + if (rose_neigh->digipeat == NULL) { kfree(rose_neigh); res = -ENOMEM; goto out;