[openib-general] [PATCH] Fix GFP mask inside spinlock
Roland Dreier
Mon Oct 25 13:22:05 PDT 2004
add_mad_reg_req() is called with a spinlock held, so it has to
allocate with GFP_ATOMIC. (It might be better to reorganize the code
so the allocation can happen outside the lock but I didn't attempt that)
Index: linux-kernel/infiniband/core/ib_mad.c
===================================================================
--- linux-kernel.orig/infiniband/core/ib_mad.c 2004-10-25 12:16:15.000000000 -0700
+++ linux-kernel/infiniband/core/ib_mad.c 2004-10-25 13:19:32.000000000 -0700
@@ -597,7 +597,7 @@
class = &private->version[mad_reg_req->mgmt_class_version];
if (!*class) {
/* Allocate management class table for "new" class version */
- *class = kmalloc(sizeof **class, GFP_KERNEL);
+ *class = kmalloc(sizeof **class, GFP_ATOMIC);
if (!*class) {
printk(KERN_ERR PFX "No memory for "
"ib_mad_mgmt_class_table\n");
More information about the openib-general mailing list