]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/lguest/page_tables.c
lguest: fix spurious BUG_ON() on invalid guest stack.
[linux-2.6-omap-h63xx.git] / drivers / lguest / page_tables.c
index 576a8318221c9dfe47dc28a660565094c9ef7753..82ff484bd8c8e9629625a4ddf8d016484aab8055 100644 (file)
@@ -373,8 +373,10 @@ unsigned long guest_pa(struct lg_cpu *cpu, unsigned long vaddr)
        /* First step: get the top-level Guest page table entry. */
        gpgd = lgread(cpu, gpgd_addr(cpu, vaddr), pgd_t);
        /* Toplevel not present?  We can't map it in. */
-       if (!(pgd_flags(gpgd) & _PAGE_PRESENT))
+       if (!(pgd_flags(gpgd) & _PAGE_PRESENT)) {
                kill_guest(cpu, "Bad address %#lx", vaddr);
+               return -1UL;
+       }
 
        gpte = lgread(cpu, gpte_addr(gpgd, vaddr), pte_t);
        if (!(pte_flags(gpte) & _PAGE_PRESENT))