aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband
diff options
context:
space:
mode:
authorOr Gerlitz <ogerlitz@voltaire.com>2010-02-08 08:20:43 -0500
committerRoland Dreier <rolandd@cisco.com>2010-02-24 12:41:12 -0500
commit528f4e8c8341706a354ff96daf615e678e9b296f (patch)
treed6d1d1b4276af7f5548122c83fcd80dbc22a6334 /drivers/infiniband
parentf19624aa92003969ba822cd3c552800965aa530b (diff)
IB/iser: Use atomic allocations
Two minor flows in iSER's data path still use allocations; move them to be atomic as a preperation step towards moving to use libiscsi passthrough mode. Signed-off-by: Or Gerlitz <ogerlitz@voltaire.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r--drivers/infiniband/ulp/iser/iser_initiator.c2
-rw-r--r--drivers/infiniband/ulp/iser/iser_memory.c4
2 files changed, 3 insertions, 3 deletions
diff --git a/drivers/infiniband/ulp/iser/iser_initiator.c b/drivers/infiniband/ulp/iser/iser_initiator.c
index 3be3a13b5e30..e27eb8757650 100644
--- a/drivers/infiniband/ulp/iser/iser_initiator.c
+++ b/drivers/infiniband/ulp/iser/iser_initiator.c
@@ -373,7 +373,7 @@ int iser_send_data_out(struct iscsi_conn *conn,
373 iser_dbg("%s itt %d dseg_len %d offset %d\n", 373 iser_dbg("%s itt %d dseg_len %d offset %d\n",
374 __func__,(int)itt,(int)data_seg_len,(int)buf_offset); 374 __func__,(int)itt,(int)data_seg_len,(int)buf_offset);
375 375
376 tx_desc = kmem_cache_zalloc(ig.desc_cache, GFP_NOIO); 376 tx_desc = kmem_cache_zalloc(ig.desc_cache, GFP_ATOMIC);
377 if (tx_desc == NULL) { 377 if (tx_desc == NULL) {
378 iser_err("Failed to alloc desc for post dataout\n"); 378 iser_err("Failed to alloc desc for post dataout\n");
379 return -ENOMEM; 379 return -ENOMEM;
diff --git a/drivers/infiniband/ulp/iser/iser_memory.c b/drivers/infiniband/ulp/iser/iser_memory.c
index 5e32e8f1edf5..fb88d6896b67 100644
--- a/drivers/infiniband/ulp/iser/iser_memory.c
+++ b/drivers/infiniband/ulp/iser/iser_memory.c
@@ -53,10 +53,10 @@ static int iser_start_rdma_unaligned_sg(struct iscsi_iser_task *iser_task,
53 unsigned long cmd_data_len = data->data_len; 53 unsigned long cmd_data_len = data->data_len;
54 54
55 if (cmd_data_len > ISER_KMALLOC_THRESHOLD) 55 if (cmd_data_len > ISER_KMALLOC_THRESHOLD)
56 mem = (void *)__get_free_pages(GFP_NOIO, 56 mem = (void *)__get_free_pages(GFP_ATOMIC,
57 ilog2(roundup_pow_of_two(cmd_data_len)) - PAGE_SHIFT); 57 ilog2(roundup_pow_of_two(cmd_data_len)) - PAGE_SHIFT);
58 else 58 else
59 mem = kmalloc(cmd_data_len, GFP_NOIO); 59 mem = kmalloc(cmd_data_len, GFP_ATOMIC);
60 60
61 if (mem == NULL) { 61 if (mem == NULL) {
62 iser_err("Failed to allocate mem size %d %d for copying sglist\n", 62 iser_err("Failed to allocate mem size %d %d for copying sglist\n",