[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] Another PAE fix for pgd_ctor.
# HG changeset patch # User kaf24@xxxxxxxxxxxxxxxxxxxx # Node ID 0ea18c1ea1349e753740212efd8e23b564fd2b56 # Parent 0ec1d38f26f76512487717cf2109ada189efc3e4 Another PAE fix for pgd_ctor. Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx> diff -r 0ec1d38f26f7 -r 0ea18c1ea134 linux-2.6-xen-sparse/arch/xen/i386/mm/pgtable.c --- a/linux-2.6-xen-sparse/arch/xen/i386/mm/pgtable.c Thu Nov 24 18:16:13 2005 +++ b/linux-2.6-xen-sparse/arch/xen/i386/mm/pgtable.c Thu Nov 24 18:40:18 2005 @@ -285,19 +285,18 @@ BUG_ON(rc); #endif - if (!HAVE_SHARED_KERNEL_PMD) - spin_lock_irqsave(&pgd_lock, flags); - - memcpy((pgd_t *)pgd + USER_PTRS_PER_PGD, - swapper_pg_dir + USER_PTRS_PER_PGD, - (PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof(pgd_t)); - - if (HAVE_SHARED_KERNEL_PMD) - return; - + if (HAVE_SHARED_KERNEL_PMD) { + memcpy((pgd_t *)pgd + USER_PTRS_PER_PGD, + swapper_pg_dir + USER_PTRS_PER_PGD, + (PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof(pgd_t)); + return; + } + + memset(pgd, 0, PTRS_PER_PGD*sizeof(pgd_t)); + + spin_lock_irqsave(&pgd_lock, flags); pgd_list_add(pgd); spin_unlock_irqrestore(&pgd_lock, flags); - memset(pgd, 0, USER_PTRS_PER_PGD*sizeof(pgd_t)); } void pgd_dtor(void *pgd, kmem_cache_t *cache, unsigned long unused) _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |