• Ken Chen's avatar
    [IA64] fix nested_dtlb_miss handler for hugetlb address · 0393eed5
    Ken Chen authored
    The nested_dtlb_miss handler currently does not handle fault from
    hugetlb address correctly.  It walks the page table assuming PAGE_SIZE.
    Thus when taking a fault triggered from hugetlb address, it would not
    calculate the pgd/pmd/pte address correctly and thus result an incorrect
    invocation of ia64_do_page_fault().  In there, kernel will signal SIGBUS
    and application dies (The faulting address is perfectly legal and we
    have a valid pte for the corresponding user hugetlb address as well).
    This patch fix the described kernel bug.  Since nested_dtlb_miss is a
    rare event and a slow path anyway, I'm making the change without #ifdef
    CONFIG_HUGETLB_PAGE for code readability.  Tony, please apply.
    Signed-off-by: default avatarKen Chen <kenneth.w.chen@intel.com>
    Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
    0393eed5
ivt.S 47.5 KB