#include <asm/flushtlb.h>
#include <asm/hardirq.h>
#include <asm/setup.h>
+#include <asm/pmap.h>
+#include <asm/fixmap.h>
static DEFINE_PER_CPU(struct vcpu *, override);
v = mapcache_current_vcpu();
if ( !v )
- return mfn_to_virt(mfn_x(mfn));
+ return pmap_map(mfn);
dcache = &v->domain->arch.mapcache;
vcache = &v->arch.mapcache;
if ( !dcache->inuse )
- return mfn_to_virt(mfn_x(mfn));
+ return pmap_map(mfn);
perfc_incr(map_domain_page_count);
if ( va >= DIRECTMAP_VIRT_START )
return;
+ if ( va >= FIXADDR_START && va < FIXADDR_TOP )
+ {
+ pmap_unmap((void *)ptr);
+ return;
+ }
+
ASSERT(va >= MAPCACHE_VIRT_START && va < MAPCACHE_VIRT_END);
v = mapcache_current_vcpu();