Hi Akio.
some small comments.
On Sun, May 06, 2007 at 11:32:55AM +0900, Akio Takebe wrote:
> diff -r 63263d715d43 xen/arch/ia64/xen/mm.c
> --- a/xen/arch/ia64/xen/mm.c Thu May 03 14:38:26 2007 -0600
> +++ b/xen/arch/ia64/xen/mm.c Sun May 06 12:55:52 2007 +0900
> @@ -493,6 +493,8 @@ u64 translate_domain_pte(u64 pteval, u64
> port space. Also prevents possible address
> aliasing issues. */
> if (!(mpaddr - IO_PORTS_PADDR < IO_PORTS_SIZE))
> + /* and also except UC|WB page */
> + if (!efi_ucwb(mpaddr, PAGE_SIZE))
> gdprintk(XENLOG_WARNING, "Warning: UC to WB "
> "for mpaddr=%lx\n", mpaddr);
> pteval = (pteval & ~_PAGE_MA_MASK) | _PAGE_MA_WB;
Probably you want something like
if (!(mpaddr - IO_PORTS_PADDR < IO_PORTS_SIZE) &&
/* and also except UC|WB page */
(d != dom0 || !efi_ucwb(mpaddr, PAGE_SIZE)))
> diff -r 63263d715d43 xen/include/asm-ia64/mm.h
> --- a/xen/include/asm-ia64/mm.h Thu May 03 14:38:26 2007 -0600
> +++ b/xen/include/asm-ia64/mm.h Sun May 06 12:55:52 2007 +0900
> @@ -431,6 +431,7 @@ extern unsigned long assign_domain_mmio_
> extern unsigned long assign_domain_mmio_page(struct domain *d, unsigned long
> mpaddr, unsigned long phys_addr, unsigned long size, unsigned long flags);
> extern unsigned long assign_domain_mach_page(struct domain *d, unsigned long
> mpaddr, unsigned long size, unsigned long flags);
> int domain_page_mapped(struct domain *d, unsigned long mpaddr);
> +int efi_ucwb(unsigned long physaddr, unsigned long size);
> int efi_mmio(unsigned long physaddr, unsigned long size);
> extern unsigned long ____lookup_domain_mpa(struct domain *d, unsigned long
> mpaddr);
> extern unsigned long do_dom0vp_op(unsigned long cmd, unsigned long arg0,
> unsigned long arg1, unsigned long arg2, unsigned long arg3);
efi_ucwb() is defined and used in only mm.c so that
it can be declared as static function.
--
yamahata
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|