Browse Source

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

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


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6161 c046a42c-6fe2-441c-8c8c-71466251a162
edgar_igl 16 years ago
parent
commit
80e1b265f4
1 changed files with 2 additions and 5 deletions
  1. 2 5
      target-cris/mmu.c

+ 2 - 5
target-cris/mmu.c

@@ -295,7 +295,7 @@ void cris_mmu_flush_pid(CPUState *env, uint32_t pid)
 	unsigned int idx;
 	unsigned int idx;
 	uint32_t lo, hi;
 	uint32_t lo, hi;
 	uint32_t tlb_vpn;
 	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 set;
 	unsigned int mmu;
 	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_pid = EXTRACT_FIELD(hi, 0, 7);
 				tlb_g  = EXTRACT_FIELD(lo, 4, 4);
 				tlb_g  = EXTRACT_FIELD(lo, 4, 4);
 				tlb_v = EXTRACT_FIELD(lo, 3, 3);
 				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;
 					vaddr = tlb_vpn << TARGET_PAGE_BITS;
 					D(fprintf(logfile,
 					D(fprintf(logfile,
 						  "flush pid=%x vaddr=%x\n", 
 						  "flush pid=%x vaddr=%x\n",