powerpc/book3s: Fix flush_tlb cpu_spec hook to take a generic argument.
The flush_tlb hook in cpu_spec was introduced as a generic function hook to invalidate TLBs. But the current implementation of flush_tlb hook takes IS (invalidation selector) as an argument which is architecture dependent. Hence, It is not right to have a generic routine where caller has to pass non-generic argument. This patch fixes this and makes flush_tlb hook as high level API. Reported-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:

committed by
Michael Ellerman

parent
7f664cf9e4
commit
45706bb53d
@@ -137,15 +137,11 @@ __init_HFSCR:
|
||||
/*
|
||||
* Clear the TLB using the specified IS form of tlbiel instruction
|
||||
* (invalidate by congruence class). P7 has 128 CCs., P8 has 512.
|
||||
*
|
||||
* r3 = IS field
|
||||
*/
|
||||
__init_tlb_power7:
|
||||
li r3,0xc00 /* IS field = 0b11 */
|
||||
_GLOBAL(__flush_tlb_power7)
|
||||
li r6,128
|
||||
mtctr r6
|
||||
mr r7,r3 /* IS field */
|
||||
li r7,0xc00 /* IS field = 0b11 */
|
||||
ptesync
|
||||
2: tlbiel r7
|
||||
addi r7,r7,0x1000
|
||||
@@ -154,11 +150,9 @@ _GLOBAL(__flush_tlb_power7)
|
||||
1: blr
|
||||
|
||||
__init_tlb_power8:
|
||||
li r3,0xc00 /* IS field = 0b11 */
|
||||
_GLOBAL(__flush_tlb_power8)
|
||||
li r6,512
|
||||
mtctr r6
|
||||
mr r7,r3 /* IS field */
|
||||
li r7,0xc00 /* IS field = 0b11 */
|
||||
ptesync
|
||||
2: tlbiel r7
|
||||
addi r7,r7,0x1000
|
||||
|
Reference in New Issue
Block a user