CRIS: Dont flush kernel protected pages when modifying $pid.
authoredgar_igl <edgar_igl@c046a42c-6fe2-441c-8c8c-71466251a162>
Sun, 4 Jan 2009 15:45:17 +0000 (15:45 +0000)
committeredgar_igl <edgar_igl@c046a42c-6fe2-441c-8c8c-71466251a162>
Sun, 4 Jan 2009 15:45:17 +0000 (15:45 +0000)
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

target-cris/mmu.c

index 408a99c..9ae398d 100644 (file)
@@ -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",