diff options
author | Anton Blanchard <antonb@au1.ibm.com> | 2009-05-13 19:52:40 -0400 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2009-05-13 19:52:40 -0400 |
commit | bf31a1a02eb28d9bda0bb74345df7889faeb7335 (patch) | |
tree | ede5fa4f19c993ec6809e94941280f6e3600921e /drivers/infiniband | |
parent | 210af919c949a7d6bd330916ef376cec2907d81e (diff) |
IB/ehca: Replace vmalloc() with kmalloc() for queue allocation
To improve performance of driver resource allocation, replace
vmalloc() calls with kmalloc().
Signed-off-by: Stefan Roscher <stefan.roscher@de.ibm.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/hw/ehca/ipz_pt_fn.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/infiniband/hw/ehca/ipz_pt_fn.c b/drivers/infiniband/hw/ehca/ipz_pt_fn.c index c3a328465431..a2605593ae79 100644 --- a/drivers/infiniband/hw/ehca/ipz_pt_fn.c +++ b/drivers/infiniband/hw/ehca/ipz_pt_fn.c | |||
@@ -220,7 +220,7 @@ int ipz_queue_ctor(struct ehca_pd *pd, struct ipz_queue *queue, | |||
220 | queue->small_page = NULL; | 220 | queue->small_page = NULL; |
221 | 221 | ||
222 | /* allocate queue page pointers */ | 222 | /* allocate queue page pointers */ |
223 | queue->queue_pages = vmalloc(nr_of_pages * sizeof(void *)); | 223 | queue->queue_pages = kmalloc(nr_of_pages * sizeof(void *), GFP_KERNEL); |
224 | if (!queue->queue_pages) { | 224 | if (!queue->queue_pages) { |
225 | ehca_gen_err("Couldn't allocate queue page list"); | 225 | ehca_gen_err("Couldn't allocate queue page list"); |
226 | return 0; | 226 | return 0; |
@@ -240,7 +240,7 @@ int ipz_queue_ctor(struct ehca_pd *pd, struct ipz_queue *queue, | |||
240 | ipz_queue_ctor_exit0: | 240 | ipz_queue_ctor_exit0: |
241 | ehca_gen_err("Couldn't alloc pages queue=%p " | 241 | ehca_gen_err("Couldn't alloc pages queue=%p " |
242 | "nr_of_pages=%x", queue, nr_of_pages); | 242 | "nr_of_pages=%x", queue, nr_of_pages); |
243 | vfree(queue->queue_pages); | 243 | kfree(queue->queue_pages); |
244 | 244 | ||
245 | return 0; | 245 | return 0; |
246 | } | 246 | } |
@@ -262,7 +262,7 @@ int ipz_queue_dtor(struct ehca_pd *pd, struct ipz_queue *queue) | |||
262 | free_page((unsigned long)queue->queue_pages[i]); | 262 | free_page((unsigned long)queue->queue_pages[i]); |
263 | } | 263 | } |
264 | 264 | ||
265 | vfree(queue->queue_pages); | 265 | kfree(queue->queue_pages); |
266 | 266 | ||
267 | return 1; | 267 | return 1; |
268 | } | 268 | } |