[PATCH] fix bogus ddp kmalloc call

From: Benjamin Herrenschmidt (bh40@calva.net)
Date: Mon Jul 24 2000 - 15:53:20 EST


Hi Alan !

2.2.17pre13 gave me a warning "kmem_grow: Called non-atomically from int
- size-32".

I tracked this down to be a kmalloc(..., GFP_KERNEL) done in ddp.c while
holding the SOCKHASH_LOCK (causing the bh count to be non-NULL, and so
in_interrupt() to return true).

Here's a simple fix:

--- paulus_stable/net/appletalk/ddp.c Fri Jul 14 20:46:35 2000
+++ benh_stable/net/appletalk/ddp.c Mon Jul 24 22:36:41 2000
@@ -729,7 +729,7 @@
 
         if(rt == NULL)
         {
- rt = (struct atalk_route *)kmalloc(sizeof(struct atalk_route), GFP_KERNEL);
+ rt = (struct atalk_route *)kmalloc(sizeof(struct atalk_route), GFP_ATOMIC);
                 if(rt == NULL) {
                         SOCKHASH_UNLOCK();
                         return (-ENOBUFS);

Ben.


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



This archive was generated by hypermail 2b29 : Mon Jul 31 2000 - 21:00:17 EST