Allocate memory for the page_list field of struct ib_pool_fmr only when
caching is enabled, since it is not used otherwise

Signed-off-by: Or Gerlitz <[EMAIL PROTECTED]>

Index: linux-2.6.24-rc8/drivers/infiniband/core/fmr_pool.c
===================================================================
--- linux-2.6.24-rc8.orig/drivers/infiniband/core/fmr_pool.c    2008-01-28 
16:45:41.000000000 +0200
+++ linux-2.6.24-rc8/drivers/infiniband/core/fmr_pool.c 2008-01-29 
09:17:56.000000000 +0200
@@ -308,10 +308,13 @@ struct ib_fmr_pool *ib_create_fmr_pool(s
                        .max_maps   = pool->max_remaps,
                        .page_shift = params->page_shift
                };
+               int bytes_per_fmr = sizeof *fmr;
+
+               if (pool->cache_bucket)
+                       bytes_per_fmr += params->max_pages_per_fmr * sizeof 
(u64);

                for (i = 0; i < params->pool_size; ++i) {
-                       fmr = kmalloc(sizeof *fmr + params->max_pages_per_fmr * 
sizeof (u64),
-                                     GFP_KERNEL);
+                       fmr = kmalloc(bytes_per_fmr, GFP_KERNEL);
                        if (!fmr) {
                                printk(KERN_WARNING PFX "failed to allocate fmr 
"
                                       "struct for FMR %d\n", i);
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to