{
        dma_addr_t end = addr + size - 1;
 
-       if (!dev->dma_mask)
-               return false;
-
        if (is_ram && !IS_ENABLED(CONFIG_ARCH_DMA_ADDR_T_64BIT) &&
            min(addr, end) < phys_to_dma(dev, PFN_PHYS(min_low_pfn)))
                return false;
 
        dma_addr_t addr;
 
        BUG_ON(!valid_dma_direction(dir));
+
+       if (WARN_ON_ONCE(!dev->dma_mask))
+               return DMA_MAPPING_ERROR;
+
        if (dma_map_direct(dev, ops))
                addr = dma_direct_map_page(dev, page, offset, size, dir, attrs);
        else
        int ents;
 
        BUG_ON(!valid_dma_direction(dir));
+
+       if (WARN_ON_ONCE(!dev->dma_mask))
+               return 0;
+
        if (dma_map_direct(dev, ops))
                ents = dma_direct_map_sg(dev, sg, nents, dir, attrs);
        else
 
        BUG_ON(!valid_dma_direction(dir));
 
+       if (WARN_ON_ONCE(!dev->dma_mask))
+               return DMA_MAPPING_ERROR;
+
        /* Don't allow RAM to be mapped */
        if (WARN_ON_ONCE(pfn_valid(PHYS_PFN(phys_addr))))
                return DMA_MAPPING_ERROR;