Updates to translation tables aren't working right when running as a
Xen guest unless the cache is flushed. This is very much a big hammer
to crack a small nut.
* have a DSB after cleaning the cache line.
*/
dsb();
+ /*
+ * FIXME: translation table updates not working right unless
+ * this flush is here.
+ */
+ flush_cache_all();
}
static inline void flush_cache_vunmap(unsigned long start, unsigned long end)
* sure we exit gracefully rather than endlessly redo the fault.
*/
fault = handle_mm_fault(mm, vma, addr & PAGE_MASK, (fsr & FSR_WRITE) ? FAULT_FLAG_WRITE : 0);
+
+ /*
+ * FIXME: handle_mm_fault() probably updated some translation
+ * table entries and these are not working right unless this
+ * flush is here.
+ */
+ flush_cache_all();
+
if (unlikely(fault & VM_FAULT_ERROR))
return fault;
if (fault & VM_FAULT_MAJOR)