![]() | |||||||||||||
Messages in this thread |
Jeremy Fitzhardinge wrote:
> Jeremy Fitzhardinge wrote:
>
>> Hm, I don't think this interface will work for Xen. In Xen, whenever a
>> pagetable page gets mapped, it must be mapped RO. map_pt_hook gets
>> called after the mapping has already been created, so its too late for Xen.
>>
>> I was planning on adding kmap_atomic_pte() for use in pte_offset_map*(),
>> which would be wired through to paravirt_ops to allow Xen to make this a
>> RO mapping. Would this be sufficient for you to do your vmi thing?
>>
>>
>
> Something like this (compiled, untested).
>
> J
>
> diff -r 972e84c265cf arch/i386/kernel/paravirt.c
> --- a/arch/i386/kernel/paravirt.c Thu Mar 01 19:12:49 2007 -0800
> +++ b/arch/i386/kernel/paravirt.c Thu Mar 01 19:38:42 2007 -0800
> @@ -32,6 +32,7 @@
> #include <asm/fixmap.h>
> #include <asm/apic.h>
> #include <asm/tlbflush.h>
> +#include <asm/highmem.h>
>
> /* nop stub */
> void _paravirt_nop(void)
> @@ -605,6 +606,8 @@ struct paravirt_ops paravirt_ops = {
>
> .kpte_clear_flush = native_kpte_clear_flush,
>
> + .kmap_atomic_pte = native_kmap_atomic_pte,
> +
>
That doesn't quite work, since we need to know which of the two -
KM_PTE0 or KM_PTE1 is being mapped. But it could be moved to before the
mapping, as you need, and take this as a parameter.
Zach
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
| ||||||||||||
| Last update: 2007-03-02 07:27 [from the cache] ©2003-2008 | |||||||||||||