if (!dma_set_mask(pi->port.dev, 0xffffffff)) {
                        printk(KERN_ERR "MPSC: Inadequate DMA support\n");
                        rc = -ENXIO;
-               } else if ((pi->dma_region = dma_alloc_noncoherent(pi->port.dev,
+               } else if ((pi->dma_region = dma_alloc_attrs(pi->port.dev,
                                                MPSC_DMA_ALLOC_SIZE,
-                                               &pi->dma_region_p, GFP_KERNEL))
+                                               &pi->dma_region_p, GFP_KERNEL,
+                                               DMA_ATTR_NON_CONSISTENT))
                                == NULL) {
                        printk(KERN_ERR "MPSC: Can't alloc Desc region\n");
                        rc = -ENOMEM;
        pr_debug("mpsc_free_ring_mem[%d]: Freeing ring mem\n", pi->port.line);
 
        if (pi->dma_region) {
-               dma_free_noncoherent(pi->port.dev, MPSC_DMA_ALLOC_SIZE,
-                               pi->dma_region, pi->dma_region_p);
+               dma_free_attrs(pi->port.dev, MPSC_DMA_ALLOC_SIZE,
+                               pi->dma_region, pi->dma_region_p,
+                               DMA_ATTR_NON_CONSISTENT);
                pi->dma_region = NULL;
                pi->dma_region_p = (dma_addr_t)NULL;
        }