static int __init udmabuf_dev_init(void)
 {
-       return misc_register(&udmabuf_misc);
+       int ret;
+
+       ret = misc_register(&udmabuf_misc);
+       if (ret < 0) {
+               pr_err("Could not initialize udmabuf device\n");
+               return ret;
+       }
+
+       ret = dma_coerce_mask_and_coherent(udmabuf_misc.this_device,
+                                          DMA_BIT_MASK(64));
+       if (ret < 0) {
+               pr_err("Could not setup DMA mask for udmabuf device\n");
+               misc_deregister(&udmabuf_misc);
+               return ret;
+       }
+
+       return 0;
 }
 
 static void __exit udmabuf_dev_exit(void)