-#define page_to_dma(dev, page) ((dma_addr_t)__virt_to_bus(page_address(page)))
-#define dma_to_virt(dev, addr) (__bus_to_virt(addr))
-#define virt_to_dma(dev, addr) (__virt_to_bus(addr))
+#define page_to_dma(dev, page) ((dma_addr_t)__virt_to_bus((unsigned long)page_address(page)))
+#define dma_to_virt(dev, addr) ((void *)__bus_to_virt(addr))
+#define virt_to_dma(dev, addr) ((dma_addr_t)__virt_to_bus((unsigned long)(addr)))