mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-28 15:20:41 +00:00
powerpc/mm: Handle hypervisor pte insert failure in __hash_page_huge
If the hypervisor gives us an error on a hugepage insert we panic. The normal page code already handles this by returning an error instead and we end calling low_hash_fault which will just kill the task if possible. The patch below does a similar thing for the hugepage case. Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
b37fa16e78
commit
b1623e7eb2
1 changed files with 9 additions and 2 deletions
|
@ -121,8 +121,15 @@ int __hash_page_huge(unsigned long ea, unsigned long access, unsigned long vsid,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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);
|
new_pte |= (slot << 12) & (_PAGE_F_SECOND | _PAGE_F_GIX);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue