/* Fix up the linear direct mapping of the kernel to avoid cache attribute conflicts.  */
int ioremap_change_attr(unsigned long vaddr, unsigned long size, unsigned long prot_val)
/* Fix up the linear direct mapping of the kernel to avoid cache attribute conflicts.  */
int ioremap_change_attr(unsigned long vaddr, unsigned long size, unsigned long prot_val)
{
	unsigned long nrpages = size >> PAGE_SHIFT;
	int err;
	switch (prot_val) {
	case _PAGE_CACHE_UC:
	default:
		err = _set_memory_uc(vaddr, nrpages);
		break;
	case _PAGE_CACHE_WC:
		err = _set_memory_wc(vaddr, nrpages);
		break;
	case _PAGE_CACHE_WB:
		err = _set_memory_wb(vaddr, nrpages);
		break;
	}
	return err;
}