# HG changeset patch
# User awilliam@xxxxxxxxxxxx
# Date 1172786529 25200
# Node ID 8a58ea36e4207e6d47f8870632ab8fe14e3622cb
# Parent 0deb53ff4b674eadc676274a35ccee5a61750e98
[IA64] Bug fixes to assign_domain_mmio_page()
- phys_addr also needs to be rounded down to a page start
- return the original mpaddr, not the modified one
Signed-off-by: Alex Williamson <alex.williamson@xxxxxx>
---
xen/arch/ia64/xen/mm.c | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)
diff -r 0deb53ff4b67 -r 8a58ea36e420 xen/arch/ia64/xen/mm.c
--- a/xen/arch/ia64/xen/mm.c Thu Mar 01 11:21:44 2007 -0700
+++ b/xen/arch/ia64/xen/mm.c Thu Mar 01 15:02:09 2007 -0700
@@ -1048,7 +1048,9 @@ assign_domain_mmio_page(struct domain *d
unsigned long phys_addr, unsigned long size,
unsigned long flags)
{
+ unsigned long addr = mpaddr & PAGE_MASK;
unsigned long end = PAGE_ALIGN(mpaddr + size);
+
if (size == 0) {
gdprintk(XENLOG_INFO, "%s: domain %p mpaddr 0x%lx size = 0x%lx\n",
__func__, d, mpaddr, size);
@@ -1061,9 +1063,9 @@ assign_domain_mmio_page(struct domain *d
return -EINVAL;
}
- for (mpaddr &= PAGE_MASK; mpaddr < end;
- mpaddr += PAGE_SIZE, phys_addr += PAGE_SIZE) {
- __assign_domain_page(d, mpaddr, phys_addr, flags);
+ for (phys_addr &= PAGE_MASK; addr < end;
+ addr += PAGE_SIZE, phys_addr += PAGE_SIZE) {
+ __assign_domain_page(d, addr, phys_addr, flags);
}
return mpaddr;
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|