openrisc: fix up vmalloc page table loading
vmalloc'ed pages are faulted into a process' page tables on demand. In order to facilitate this, do_page_fault needs to know whether it was called via a page fault exception or a TLB-miss exception. This patch adds a wrapper around the _x_page_fault_handler entry points that the TLB-miss exceptions can call into in order to have the relevant parameter set to satisfy do_page_fault. This fixes a bug and is "good enough" for now. That said, this whole handling of vmalloc needs to be audited for correctness at some point. Signed-off-by: Jonas Bonn <jonas@southpole.se>
Esse commit está contido em:
@@ -1069,8 +1069,7 @@ d_pte_not_present:
|
||||
EXCEPTION_LOAD_GPR4
|
||||
EXCEPTION_LOAD_GPR5
|
||||
EXCEPTION_LOAD_GPR6
|
||||
l.j _dispatch_do_dpage_fault
|
||||
l.nop
|
||||
EXCEPTION_HANDLE(_dtlb_miss_page_fault_handler)
|
||||
|
||||
/* ==============================================[ ITLB miss handler ]=== */
|
||||
ENTRY(itlb_miss_handler)
|
||||
@@ -1192,8 +1191,7 @@ i_pte_not_present:
|
||||
EXCEPTION_LOAD_GPR4
|
||||
EXCEPTION_LOAD_GPR5
|
||||
EXCEPTION_LOAD_GPR6
|
||||
l.j _dispatch_do_ipage_fault
|
||||
l.nop
|
||||
EXCEPTION_HANDLE(_itlb_miss_page_fault_handler)
|
||||
|
||||
/* ==============================================[ boot tlb handlers ]=== */
|
||||
|
||||
|
Referência em uma nova issue
Block a user