diff options
author | Or Gerlitz <ogerlitz@voltaire.com> | 2010-02-08 08:20:43 -0500 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2010-02-24 12:41:12 -0500 |
commit | 528f4e8c8341706a354ff96daf615e678e9b296f (patch) | |
tree | d6d1d1b4276af7f5548122c83fcd80dbc22a6334 /drivers/infiniband/ulp | |
parent | f19624aa92003969ba822cd3c552800965aa530b (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/ulp')
-rw-r--r-- | drivers/infiniband/ulp/iser/iser_initiator.c | 2 | ||||
-rw-r--r-- | drivers/infiniband/ulp/iser/iser_memory.c | 4 |
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", |