>>>>> On Tue, 27 May 2003 13:22:37 +0200, Ralf Baechle <ralf@linux-mips.org> said: ralf> While it's officially documented I still don't like it. A ralf> double conversion such as page_address(virt_to_page(ptr)) would ralf> accidently turn a pointer of an uncached mapping into one to a ralf> cached area for the same object - that will almost certainly not ralf> work as expected on a non-coherent machine. Yes, it's dangerous, I agree. ralf> Whatever - virt_to_page should then be considered a a legacy API ralf> which we have to try to support as well as possible in the hope ralf> it's going to fade away ... I hope so. For now we can do something like: buf = pci_alloc_consistent(dev, size, &dmabuf); #if defined(__mips__) && defined(CONFIG_NONCOHERENT_IO) page = virt_to_page(CAC_ADDR(buf)); #else page = virt_to_page(buf); #endif Ugly but I do not want to add extra overhead to virt_to_page itself... --- Atsushi Nemoto