*/
        dma = dma_map_page_attrs(pool->p.dev, page, 0,
                                 (PAGE_SIZE << pool->p.order),
-                                pool->p.dma_dir, DMA_ATTR_SKIP_CPU_SYNC);
+                                pool->p.dma_dir, DMA_ATTR_SKIP_CPU_SYNC |
+                                                 DMA_ATTR_WEAK_ORDERING);
        if (dma_mapping_error(pool->p.dev, dma))
                return false;
 
        /* When page is unmapped, it cannot be returned to our pool */
        dma_unmap_page_attrs(pool->p.dev, dma,
                             PAGE_SIZE << pool->p.order, pool->p.dma_dir,
-                            DMA_ATTR_SKIP_CPU_SYNC);
+                            DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_WEAK_ORDERING);
        page_pool_set_dma_addr(page, 0);
 skip_dma_unmap:
        page_pool_clear_pp_info(page);