From 18c497f42db97228df999020f1273fa480f2ff1b Mon Sep 17 00:00:00 2001 From: Nicholas Bellinger Date: Thu, 19 May 2011 20:19:10 -0700 Subject: [PATCH] --- yaml --- r: 252449 b: refs/heads/master c: 53ab6709b4d35b1924240854d794482fd7d33d4a h: refs/heads/master i: 252447: 102abfd8c52953ec592c8deca720fcec82d26802 v: v3 --- [refs] | 2 +- trunk/drivers/target/target_core_device.c | 4 ++-- trunk/drivers/target/target_core_tmr.c | 7 ++++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 8b330ab772a7..0413f6a60f92 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 97868c8905a1537153d406c4a3aa39a503a5c299 +refs/heads/master: 53ab6709b4d35b1924240854d794482fd7d33d4a diff --git a/trunk/drivers/target/target_core_device.c b/trunk/drivers/target/target_core_device.c index d25e20829012..fc10ed4ac493 100644 --- a/trunk/drivers/target/target_core_device.c +++ b/trunk/drivers/target/target_core_device.c @@ -150,13 +150,13 @@ int transport_get_lun_for_cmd( { struct se_device *dev = se_lun->lun_se_dev; - spin_lock(&dev->stats_lock); + spin_lock_irq(&dev->stats_lock); dev->num_cmds++; if (se_cmd->data_direction == DMA_TO_DEVICE) dev->write_bytes += se_cmd->data_length; else if (se_cmd->data_direction == DMA_FROM_DEVICE) dev->read_bytes += se_cmd->data_length; - spin_unlock(&dev->stats_lock); + spin_unlock_irq(&dev->stats_lock); } /* diff --git a/trunk/drivers/target/target_core_tmr.c b/trunk/drivers/target/target_core_tmr.c index 4a109835e420..59b8b9c5ad72 100644 --- a/trunk/drivers/target/target_core_tmr.c +++ b/trunk/drivers/target/target_core_tmr.c @@ -55,7 +55,8 @@ struct se_tmr_req *core_tmr_alloc_req( { struct se_tmr_req *tmr; - tmr = kmem_cache_zalloc(se_tmr_req_cache, GFP_KERNEL); + tmr = kmem_cache_zalloc(se_tmr_req_cache, (in_interrupt()) ? + GFP_ATOMIC : GFP_KERNEL); if (!(tmr)) { printk(KERN_ERR "Unable to allocate struct se_tmr_req\n"); return ERR_PTR(-ENOMEM); @@ -398,9 +399,9 @@ int core_tmr_lun_reset( printk(KERN_INFO "LUN_RESET: SCSI-2 Released reservation\n"); } - spin_lock(&dev->stats_lock); + spin_lock_irq(&dev->stats_lock); dev->num_resets++; - spin_unlock(&dev->stats_lock); + spin_unlock_irq(&dev->stats_lock); DEBUG_LR("LUN_RESET: %s for [%s] Complete\n", (preempt_and_abort_list) ? "Preempt" : "TMR",