/kernel/trunk/arch/ppc32/src/mm/tlb.c |
---|
364,18 → 364,7 |
void tlb_invalidate_asid(asid_t asid) |
{ |
__u32 sdr1; |
asm volatile ( |
"mfsdr1 %0\n" |
: "=r" (sdr1) |
); |
phte_t *phte = (phte_t *) PA2KA(sdr1 & 0xffff0000); |
__u32 i; |
for (i = 0; i < 8192; i++) { |
if ((phte[i].v) && (phte[i].vsid >= (asid << 4)) && (phte[i].vsid < ((asid << 4) + 16))) |
phte[i].v = 0; |
} |
// TODO |
tlb_invalidate_all(); |
} |