[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] fix ia64 breakage with PHYSDEVOP_pirq_eoi_mfn (was Re: [Xen-devel] [PATCH 2/2] linux/x86: use shared page indicating the need for an EOI notification)



>>> Isaku Yamahata <yamahata@xxxxxxxxxxxxx> 10.12.08 05:09 >>>
>Like this?

Almost.

>--- a/include/asm-i386/mach-xen/asm/pgtable.h
>+++ b/include/asm-i386/mach-xen/asm/pgtable.h
>@@ -488,6 +488,17 @@ void make_pages_writable(void *va, unsig
>       (((maddr_t)pte_mfn(*virt_to_ptep(va)) << PAGE_SHIFT)            \
>        | ((unsigned long)(va) & (PAGE_SIZE - 1)))
> 
>+#ifdef CONFIG_HIGHPTE
>+#define ptep_to_machine(ptep)                                         \
>+({                                                                    \
>+      (unsigned long)(ptep) >= (unsigned long)high_memory?            \
>+              arbitrary_virt_to_machine(ptep) :                       \
>+              virt_to_machine(ptep);                                  \
>+})

I was intending to make use of kmap_atomic_to_page() here. Due to the
check at the beginning of that function, it would even be possible to get
away without a conditional in the highpte case of the macro:

#define ptep_to_machine(ptep) page_to_phys(kmap_atomic_to_page(ptep))

page_to_phys() and page_to_bus() could be used here interchangeably due
to them being identical on x86.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.