diff options
| -rw-r--r-- | arch/arm/mm/dma-mapping.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c index 4bdeccd24d93..4e7d1182e8a3 100644 --- a/arch/arm/mm/dma-mapping.c +++ b/arch/arm/mm/dma-mapping.c | |||
| @@ -648,12 +648,12 @@ void arm_dma_free(struct device *dev, size_t size, void *cpu_addr, | |||
| 648 | 648 | ||
| 649 | if (arch_is_coherent() || nommu()) { | 649 | if (arch_is_coherent() || nommu()) { |
| 650 | __dma_free_buffer(page, size); | 650 | __dma_free_buffer(page, size); |
| 651 | } else if (__free_from_pool(cpu_addr, size)) { | ||
| 652 | return; | ||
| 651 | } else if (!IS_ENABLED(CONFIG_CMA)) { | 653 | } else if (!IS_ENABLED(CONFIG_CMA)) { |
| 652 | __dma_free_remap(cpu_addr, size); | 654 | __dma_free_remap(cpu_addr, size); |
| 653 | __dma_free_buffer(page, size); | 655 | __dma_free_buffer(page, size); |
| 654 | } else { | 656 | } else { |
| 655 | if (__free_from_pool(cpu_addr, size)) | ||
| 656 | return; | ||
| 657 | /* | 657 | /* |
| 658 | * Non-atomic allocations cannot be freed with IRQs disabled | 658 | * Non-atomic allocations cannot be freed with IRQs disabled |
| 659 | */ | 659 | */ |
