diff options
-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) | |||
649 | unsigned long flags; | 649 | unsigned long flags; |
650 | int count = 0, i; | 650 | int count = 0, i; |
651 | 651 | ||
652 | local_irq_save(flags); | ||
653 | |||
652 | for (i = 0; i < HASH_SIZE; ++i) { | 654 | for (i = 0; i < HASH_SIZE; ++i) { |
653 | spin_lock_irqsave(&dma_entry_hash[i].lock, flags); | 655 | spin_lock(&dma_entry_hash[i].lock); |
654 | list_for_each_entry(entry, &dma_entry_hash[i].list, list) { | 656 | list_for_each_entry(entry, &dma_entry_hash[i].list, list) { |
655 | if (entry->dev == dev) | 657 | if (entry->dev == dev) |
656 | count += 1; | 658 | count += 1; |
657 | } | 659 | } |
658 | spin_unlock_irqrestore(&dma_entry_hash[i].lock, flags); | 660 | spin_unlock(&dma_entry_hash[i].lock); |
659 | } | 661 | } |
660 | 662 | ||
663 | local_irq_restore(flags); | ||
664 | |||
661 | return count; | 665 | return count; |
662 | } | 666 | } |
663 | 667 | ||