提交 80e1b265 编写于 作者: E edgar_igl

CRIS: Dont flush kernel protected pages when modifying $pid.

Signed-off-by: NEdgar E. Iglesias <edgar.iglesias@gmail.com>


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6161 c046a42c-6fe2-441c-8c8c-71466251a162
上级 bf91ada5
......@@ -295,7 +295,7 @@ void cris_mmu_flush_pid(CPUState *env, uint32_t pid)
unsigned int idx;
uint32_t lo, hi;
uint32_t tlb_vpn;
int tlb_pid, tlb_g, tlb_v, tlb_k;
int tlb_pid, tlb_g, tlb_v;
unsigned int set;
unsigned int mmu;
......@@ -311,11 +311,8 @@ void cris_mmu_flush_pid(CPUState *env, uint32_t pid)
tlb_pid = EXTRACT_FIELD(hi, 0, 7);
tlb_g = EXTRACT_FIELD(lo, 4, 4);
tlb_v = EXTRACT_FIELD(lo, 3, 3);
tlb_k = EXTRACT_FIELD(lo, 2, 2);
/* Kernel protected areas need to be flushed
as well. */
if (tlb_v && !tlb_g && (tlb_pid == pid || tlb_k)) {
if (tlb_v && !tlb_g && (tlb_pid == pid)) {
vaddr = tlb_vpn << TARGET_PAGE_BITS;
D(fprintf(logfile,
"flush pid=%x vaddr=%x\n",
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册