| Submitter | Benjamin Herrenschmidt |
|---|---|
| Date | July 23, 2010, 12:41 a.m. |
| Message ID | <1279845704-14848-1-git-send-email-benh@kernel.crashing.org> |
| Download | mbox | patch |
| Permalink | /patch/59710/ |
| State | Accepted |
| Headers | show |
Comments
Patch
diff --git a/arch/powerpc/mm/hugetlbpage-hash64.c b/arch/powerpc/mm/hugetlbpage-hash64.c index 1995398..c9acd79 100644 --- a/arch/powerpc/mm/hugetlbpage-hash64.c +++ b/arch/powerpc/mm/hugetlbpage-hash64.c @@ -121,8 +121,15 @@ repeat: } } - if (unlikely(slot == -2)) - panic("hash_huge_page: pte_insert failed\n"); + /* + * Hypervisor failure. Restore old pte and return -1 + * similar to __hash_page_* + */ + if (unlikely(slot == -2)) { + *ptep = __pte(old_pte); + err = -1; + goto out; + } new_pte |= (slot << 12) & (_PAGE_F_SECOND | _PAGE_F_GIX); }