[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] Fix the kunmap_atomic() change in 10529:4260eb8c08740de0000081c61a6237ffcb95b2d5.
# HG changeset patch # User kaf24@xxxxxxxxxxxxxxxxxxxx # Node ID cb9443bfdff811619a94bebb5346ee74e936eee8 # Parent 4b45f7f62dc77b7d4d4494fec10fed36070f5ae3 Fix the kunmap_atomic() change in 10529:4260eb8c08740de0000081c61a6237ffcb95b2d5. Mustn't zap the PTE if the virtual address is not in kmap_atomic range! Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx> --- linux-2.6-xen-sparse/arch/i386/mm/highmem-xen.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff -r 4b45f7f62dc7 -r cb9443bfdff8 linux-2.6-xen-sparse/arch/i386/mm/highmem-xen.c --- a/linux-2.6-xen-sparse/arch/i386/mm/highmem-xen.c Wed Jun 28 21:51:01 2006 +0100 +++ b/linux-2.6-xen-sparse/arch/i386/mm/highmem-xen.c Thu Jun 29 10:48:07 2006 +0100 @@ -60,7 +60,7 @@ void *kmap_atomic_pte(struct page *page, void kunmap_atomic(void *kvaddr, enum km_type type) { -#ifdef CONFIG_DEBUG_HIGHMEM +#if defined(CONFIG_DEBUG_HIGHMEM) || defined(CONFIG_XEN) unsigned long vaddr = (unsigned long) kvaddr & PAGE_MASK; enum fixed_addresses idx = type + KM_TYPE_NR*smp_processor_id(); @@ -69,7 +69,9 @@ void kunmap_atomic(void *kvaddr, enum km preempt_check_resched(); return; } +#endif +#if defined(CONFIG_DEBUG_HIGHMEM) if (vaddr != __fix_to_virt(FIX_KMAP_BEGIN+idx)) BUG(); @@ -86,8 +88,6 @@ void kunmap_atomic(void *kvaddr, enum km * XXX TODO: We could make this faster by only zapping when * kmap_flush_unused is called but that is trickier and more invasive. */ - unsigned long vaddr = (unsigned long) kvaddr & PAGE_MASK; - enum fixed_addresses idx = type + KM_TYPE_NR*smp_processor_id(); pte_clear(&init_mm, vaddr, kmap_pte-idx); #endif _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |