int ret, msb;
 
        /*
-        * Set default coherent_dma_mask to 32 bit.  Drivers are expected to
-        * setup the correct supported mask.
+        * If @dev is expected to be DMA-capable then the bus code that created
+        * it should have initialised its dma_mask pointer by this point. For
+        * now, we'll continue the legacy behaviour of coercing it to the
+        * coherent mask if not, but we'll no longer do so quietly.
         */
-       if (!dev->coherent_dma_mask)
-               dev->coherent_dma_mask = DMA_BIT_MASK(32);
-
-       /*
-        * Set it to coherent_dma_mask by default if the architecture
-        * code has not set it.
-        */
-       if (!dev->dma_mask)
+       if (!dev->dma_mask) {
+               dev_warn(dev, "DMA mask not set\n");
                dev->dma_mask = &dev->coherent_dma_mask;
+       }
 
-       size = max(dev->coherent_dma_mask, dev->coherent_dma_mask + 1);
+       if (dev->coherent_dma_mask)
+               size = max(dev->coherent_dma_mask, dev->coherent_dma_mask + 1);
+       else
+               size = 1ULL << 32;
 
        if (dev_is_pci(dev)) {
                ret = acpi_dma_get_range(dev, &dmaaddr, &offset, &size);