if (page_mapping(page)) {
mapping = page_mapping(page); if (mapping) {
void update_mmu_cache(struct vm_area_struct *vma, unsigned long addr, pte_t pte){	unsigned long pfn = pte_pfn(pte);	struct page *page;	if (!pfn_valid(pfn))		return;	page = pfn_to_page(pfn);	if (page_mapping(page)) {		int dirty = test_and_clear_bit(PG_dcache_dirty, &page->flags);		if (dirty) {			/*			 * This is our first userspace mapping of this page.			 * Ensure that the physical page is coherent with			 * the kernel mapping.			 *			 * FIXME: only need to do this on VIVT and aliasing			 *        VIPT cache architectures.  We can do that			 *	  by choosing whether to set this bit...			 */			__cpuc_flush_dcache_page(page_address(page));		}		if (cache_is_vivt())			make_coherent(vma, addr, page, dirty);	}}