xen: Check for NULL pointer before using pgd
In pgd_alloc(), the test for the new pgd being NULL is done
after it has already been used for test_and_unpin(). Do that
check before.
BugLink: http://bugs.launchpad.net/bugs/705562
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
---
arch/x86/mm/pgtable_32-xen.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/arch/x86/mm/pgtable_32-xen.c b/arch/x86/mm/pgtable_32-xen.c
index 34c7320..021e29e 100644
--- a/arch/x86/mm/pgtable_32-xen.c
+++ b/arch/x86/mm/pgtable_32-xen.c
@@ -357,9 +357,12 @@ pgd_t *pgd_alloc(struct mm_struct *mm)
pmd_t **pmds = NULL;
unsigned long flags;
+ if (!pgd)
+ return NULL;
+
pgd_test_and_unpin(pgd);
- if (PTRS_PER_PMD == 1 || !pgd)
+ if (PTRS_PER_PMD == 1)
return pgd;
#ifdef CONFIG_XEN
--
1.7.4.1
--------------080807080104060808040303
Content-Type: text/x-diff;
name="0002-xen-Avoid-double-list-adds-frees-of-pgds.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename*0="0002-xen-Avoid-double-list-adds-frees-of-pgds.patch"
|