diff options
Diffstat (limited to 'lib/dma-debug.c')
| -rw-r--r-- | lib/dma-debug.c | 10 | 
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/dma-debug.c b/lib/dma-debug.c index 13ef2338be4..518aea714d2 100644 --- a/lib/dma-debug.c +++ b/lib/dma-debug.c @@ -430,7 +430,7 @@ static struct dma_debug_entry *__dma_entry_alloc(void)   */  static struct dma_debug_entry *dma_entry_alloc(void)  { -	struct dma_debug_entry *entry = NULL; +	struct dma_debug_entry *entry;  	unsigned long flags;  	spin_lock_irqsave(&free_entries_lock, flags); @@ -438,11 +438,14 @@ static struct dma_debug_entry *dma_entry_alloc(void)  	if (list_empty(&free_entries)) {  		pr_err("DMA-API: debugging out of memory - disabling\n");  		global_disable = true; -		goto out; +		spin_unlock_irqrestore(&free_entries_lock, flags); +		return NULL;  	}  	entry = __dma_entry_alloc(); +	spin_unlock_irqrestore(&free_entries_lock, flags); +  #ifdef CONFIG_STACKTRACE  	entry->stacktrace.max_entries = DMA_DEBUG_STACKTRACE_ENTRIES;  	entry->stacktrace.entries = entry->st_entries; @@ -450,9 +453,6 @@ static struct dma_debug_entry *dma_entry_alloc(void)  	save_stack_trace(&entry->stacktrace);  #endif -out: -	spin_unlock_irqrestore(&free_entries_lock, flags); -  	return entry;  }  |