|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [xen-unstable] [IA64] Respect memory attributes for EFI_
# HG changeset patch
# User awilliam@xxxxxxxxxxxx
# Date 1167951656 25200
# Node ID 2d4807ed105677e6039abcd1877ec5fa2803f403
# Parent 5708307d0e3539227c6d1f17bfa2ed4c9c92a646
[IA64] Respect memory attributes for EFI_RUNTIME memory
Respect memory attributes when mapping EFI_RUNTIME and reserved pages.
Not all of these pages are writable and/or cachable!
Signed-off-by: Jes Sorensen <jes@xxxxxxx>
---
xen/arch/ia64/xen/dom_fw.c | 17 ++++++++++++++---
1 files changed, 14 insertions(+), 3 deletions(-)
diff -r 5708307d0e35 -r 2d4807ed1056 xen/arch/ia64/xen/dom_fw.c
--- a/xen/arch/ia64/xen/dom_fw.c Thu Jan 04 15:45:10 2007 -0700
+++ b/xen/arch/ia64/xen/dom_fw.c Thu Jan 04 16:00:56 2007 -0700
@@ -533,6 +533,7 @@ complete_dom0_memmap(struct domain *d,
u64 start = md->phys_addr;
u64 size = md->num_pages << EFI_PAGE_SHIFT;
u64 end = start + size;
+ unsigned long flags;
switch (md->type) {
case EFI_RUNTIME_SERVICES_CODE:
@@ -540,9 +541,19 @@ complete_dom0_memmap(struct domain *d,
case EFI_ACPI_RECLAIM_MEMORY:
case EFI_ACPI_MEMORY_NVS:
case EFI_RESERVED_TYPE:
- /* Map into dom0 - All these are writable. */
- assign_domain_mach_page(d, start, size,
- ASSIGN_writable);
+ /*
+ * Map into dom0 - We must respect protection
+ * and cache attributes. Not all of these pages
+ * are writable!!!
+ */
+ flags = ASSIGN_writable; /* dummy - zero */
+ if (md->attribute & EFI_MEMORY_WP)
+ flags |= ASSIGN_readonly;
+ if (md->attribute & EFI_MEMORY_UC)
+ flags |= ASSIGN_nocache;
+
+ assign_domain_mach_page(d, start, size, flags);
+
/* Fall-through. */
case EFI_MEMORY_MAPPED_IO:
/* Will be mapped with ioremap. */
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [xen-unstable] [IA64] Respect memory attributes for EFI_RUNTIME memory,
Xen patchbot-unstable <=
|
|
|
|
|