diff options
Diffstat (limited to 'drivers/dma/dmaengine.c')
| -rw-r--r-- | drivers/dma/dmaengine.c | 7 | 
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c index c741b6431958..8a6e6b60d66f 100644 --- a/drivers/dma/dmaengine.c +++ b/drivers/dma/dmaengine.c @@ -451,7 +451,8 @@ static int dma_chan_get(struct dma_chan *chan)  	/* The channel is already in use, update client count */  	if (chan->client_count) {  		__module_get(owner); -		goto out; +		chan->client_count++; +		return 0;  	}  	if (!try_module_get(owner)) @@ -470,11 +471,11 @@ static int dma_chan_get(struct dma_chan *chan)  			goto err_out;  	} +	chan->client_count++; +  	if (!dma_has_cap(DMA_PRIVATE, chan->device->cap_mask))  		balance_ref_count(chan); -out: -	chan->client_count++;  	return 0;  err_out:  | 
