diff options
Diffstat (limited to 'drivers/dma/dmaengine.c')
| -rw-r--r-- | drivers/dma/dmaengine.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c index 403dbe781122..a58993011edb 100644 --- a/drivers/dma/dmaengine.c +++ b/drivers/dma/dmaengine.c | |||
| @@ -329,9 +329,6 @@ struct dma_chan *dma_find_channel(enum dma_transaction_type tx_type) | |||
| 329 | struct dma_chan *chan; | 329 | struct dma_chan *chan; |
| 330 | int cpu; | 330 | int cpu; |
| 331 | 331 | ||
| 332 | WARN_ONCE(dmaengine_ref_count == 0, | ||
| 333 | "client called %s without a reference", __func__); | ||
| 334 | |||
| 335 | cpu = get_cpu(); | 332 | cpu = get_cpu(); |
| 336 | chan = per_cpu_ptr(channel_table[tx_type], cpu)->chan; | 333 | chan = per_cpu_ptr(channel_table[tx_type], cpu)->chan; |
| 337 | put_cpu(); | 334 | put_cpu(); |
| @@ -348,9 +345,6 @@ void dma_issue_pending_all(void) | |||
| 348 | struct dma_device *device; | 345 | struct dma_device *device; |
| 349 | struct dma_chan *chan; | 346 | struct dma_chan *chan; |
| 350 | 347 | ||
| 351 | WARN_ONCE(dmaengine_ref_count == 0, | ||
| 352 | "client called %s without a reference", __func__); | ||
| 353 | |||
| 354 | rcu_read_lock(); | 348 | rcu_read_lock(); |
| 355 | list_for_each_entry_rcu(device, &dma_device_list, global_node) { | 349 | list_for_each_entry_rcu(device, &dma_device_list, global_node) { |
| 356 | if (dma_has_cap(DMA_PRIVATE, device->cap_mask)) | 350 | if (dma_has_cap(DMA_PRIVATE, device->cap_mask)) |
| @@ -961,6 +955,8 @@ void dma_run_dependencies(struct dma_async_tx_descriptor *tx) | |||
| 961 | if (!dep) | 955 | if (!dep) |
| 962 | return; | 956 | return; |
| 963 | 957 | ||
| 958 | /* we'll submit tx->next now, so clear the link */ | ||
| 959 | tx->next = NULL; | ||
| 964 | chan = dep->chan; | 960 | chan = dep->chan; |
| 965 | 961 | ||
| 966 | /* keep submitting up until a channel switch is detected | 962 | /* keep submitting up until a channel switch is detected |
