arch/tile: parameterize system PLs to support KVM port
While not a port to KVM (yet), this change modifies the kernel to be able to build either at PL1 or at PL2 with a suitable config switch. Pushing up this change avoids handling branch merge issues going forward with the KVM work. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
This commit is contained in:
@ -563,10 +563,10 @@ do_sigbus:
|
||||
/*
|
||||
* When we take an ITLB or DTLB fault or access violation in the
|
||||
* supervisor while the critical section bit is set, the hypervisor is
|
||||
* reluctant to write new values into the EX_CONTEXT_1_x registers,
|
||||
* reluctant to write new values into the EX_CONTEXT_K_x registers,
|
||||
* since that might indicate we have not yet squirreled the SPR
|
||||
* contents away and can thus safely take a recursive interrupt.
|
||||
* Accordingly, the hypervisor passes us the PC via SYSTEM_SAVE_1_2.
|
||||
* Accordingly, the hypervisor passes us the PC via SYSTEM_SAVE_K_2.
|
||||
*
|
||||
* Note that this routine is called before homecache_tlb_defer_enter(),
|
||||
* which means that we can properly unlock any atomics that might
|
||||
@ -610,7 +610,7 @@ struct intvec_state do_page_fault_ics(struct pt_regs *regs, int fault_num,
|
||||
* fault. We didn't set up a kernel stack on initial entry to
|
||||
* sys_cmpxchg, but instead had one set up by the fault, which
|
||||
* (because sys_cmpxchg never releases ICS) came to us via the
|
||||
* SYSTEM_SAVE_1_2 mechanism, and thus EX_CONTEXT_1_[01] are
|
||||
* SYSTEM_SAVE_K_2 mechanism, and thus EX_CONTEXT_K_[01] are
|
||||
* still referencing the original user code. We release the
|
||||
* atomic lock and rewrite pt_regs so that it appears that we
|
||||
* came from user-space directly, and after we finish the
|
||||
|
@ -1060,7 +1060,7 @@ void free_initmem(void)
|
||||
|
||||
/*
|
||||
* Free the pages mapped from 0xc0000000 that correspond to code
|
||||
* pages from 0xfd000000 that we won't use again after init.
|
||||
* pages from MEM_SV_INTRPT that we won't use again after init.
|
||||
*/
|
||||
free_init_pages("unused kernel text",
|
||||
(unsigned long)_sinittext - text_delta,
|
||||
|
Reference in New Issue
Block a user