diff options
author | Joerg Roedel <joerg.roedel@amd.com> | 2009-06-08 15:46:19 +0200 |
---|---|---|
committer | Joerg Roedel <joerg.roedel@amd.com> | 2009-06-08 15:46:19 +0200 |
commit | be81c6ea23b8b471141734ef4bc005f5127aaf43 (patch) | |
tree | c43bebd9c640f1764e94d7a97f40d3c21c2bd4a4 /lib/dma-debug.c | |
parent | dma-debug: use pr_* instead of printk(KERN_* ...) (diff) | |
download | linux-dev-be81c6ea23b8b471141734ef4bc005f5127aaf43.tar.xz linux-dev-be81c6ea23b8b471141734ef4bc005f5127aaf43.zip |
dma-debug: disable/enable irqs only once in device_dma_allocations
There is no need to disable/enable irqs on each loop iteration. Just
disable irqs for the whole time the loop runs.
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Diffstat (limited to '')
-rw-r--r-- | lib/dma-debug.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/dma-debug.c b/lib/dma-debug.c index 24c4a2c5d61c..27b369da52c0 100644 --- a/lib/dma-debug.c +++ b/lib/dma-debug.c @@ -649,15 +649,19 @@ static int device_dma_allocations(struct device *dev) unsigned long flags; int count = 0, i; + local_irq_save(flags); + for (i = 0; i < HASH_SIZE; ++i) { - spin_lock_irqsave(&dma_entry_hash[i].lock, flags); + spin_lock(&dma_entry_hash[i].lock); list_for_each_entry(entry, &dma_entry_hash[i].list, list) { if (entry->dev == dev) count += 1; } - spin_unlock_irqrestore(&dma_entry_hash[i].lock, flags); + spin_unlock(&dma_entry_hash[i].lock); } + local_irq_restore(flags); + return count; } |