Remove MM_MODE_NOINVALIDATE.

This flag exists to avoid paying the cost required for consistency when
consistency is not required. It was used for stage-2 allocation when the
VMs are initially being created i.e. there is a point before which all
stage-2 updates don't invalidate and after which they do. Given this, it
can move to the same approach used by the locks for dlog and mpool
allowing the mode clutter to be removed from where is doesn't belong.

Change-Id: I9be9e42c1daaf8570d7555bb3f37876aa7c3bd51
diff --git a/inc/hf/mm.h b/inc/hf/mm.h
index d7a1c4c..ea71f9a 100644
--- a/inc/hf/mm.h
+++ b/inc/hf/mm.h
@@ -71,12 +71,6 @@
 #define MM_MODE_UNOWNED 0x0020
 #define MM_MODE_SHARED  0x0040
 
-/**
- * This flag indicates that no TLB invalidations should be issued for the
- * changes in the page table.
- */
-#define MM_MODE_NOINVALIDATE 0x0080
-
 /* clang-format on */
 
 struct mm_page_table {
@@ -92,13 +86,15 @@
 	paddr_t root;
 };
 
+void mm_vm_enable_invalidation(void);
+
 bool mm_vm_init(struct mm_ptable *t, struct mpool *ppool);
 void mm_vm_fini(struct mm_ptable *t, struct mpool *ppool);
 bool mm_vm_identity_map(struct mm_ptable *t, paddr_t begin, paddr_t end,
 			int mode, ipaddr_t *ipa, struct mpool *ppool);
-bool mm_vm_unmap(struct mm_ptable *t, paddr_t begin, paddr_t end, int mode,
+bool mm_vm_unmap(struct mm_ptable *t, paddr_t begin, paddr_t end,
 		 struct mpool *ppool);
-bool mm_vm_unmap_hypervisor(struct mm_ptable *t, int mode, struct mpool *ppool);
+bool mm_vm_unmap_hypervisor(struct mm_ptable *t, struct mpool *ppool);
 void mm_vm_defrag(struct mm_ptable *t, struct mpool *ppool);
 void mm_vm_dump(struct mm_ptable *t);
 bool mm_vm_get_mode(struct mm_ptable *t, ipaddr_t begin, ipaddr_t end,
@@ -108,5 +104,5 @@
 bool mm_cpu_init(void);
 void *mm_identity_map(paddr_t begin, paddr_t end, int mode,
 		      struct mpool *ppool);
-bool mm_unmap(paddr_t begin, paddr_t end, int mode, struct mpool *ppool);
+bool mm_unmap(paddr_t begin, paddr_t end, struct mpool *ppool);
 void mm_defrag(struct mpool *ppool);