[PATCH] ppc64 kexec: native hash clear

Add code to clear the hash table and invalidate the tlb for native (SMP,
non-LPAR) mode.  Supports 16M and 4k pages.

Signed-off-by: Milton Miller <miltonm@bga.com>
Signed-off-by: R Sharada <sharada@in.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
R Sharada
2005-06-25 14:58:08 -07:00
committed by Linus Torvalds
parent 70765aa4bd
commit f4c82d5132
2 changed files with 68 additions and 1 deletions
+22
View File
@@ -181,6 +181,28 @@ static inline void tlbiel(unsigned long va)
asm volatile("ptesync": : :"memory");
}
static inline unsigned long slot2va(unsigned long avpn, unsigned long large,
unsigned long secondary, unsigned long slot)
{
unsigned long va;
va = avpn << 23;
if (!large) {
unsigned long vpi, pteg;
pteg = slot / HPTES_PER_GROUP;
if (secondary)
pteg = ~pteg;
vpi = ((va >> 28) ^ pteg) & htab_hash_mask;
va |= vpi << PAGE_SHIFT;
}
return va;
}
/*
* Handle a fault by adding an HPTE. If the address can't be determined
* to be valid via Linux page tables, return 1. If handled return 0