diff --git a/mm/filemap_xip.c b/mm/filemap_xip.c
index 3b6e384b98a671b4156b7244a729c5dee03a2924..4553b2c5aab4e42a519c5450fea6f70e7faae6bd 100644
--- a/mm/filemap_xip.c
+++ b/mm/filemap_xip.c
@@ -191,7 +191,7 @@ __xip_unmap (struct address_space * mapping,
 					 address);
 		if (!IS_ERR(pte)) {
 			/* Nuke the page table entry. */
-			flush_cache_page(vma, address, pte_pfn(pte));
+			flush_cache_page(vma, address, pte_pfn(*pte));
 			pteval = ptep_clear_flush(vma, address, pte);
 			BUG_ON(pte_dirty(pteval));
 			pte_unmap(pte);