浏览代码

[SPARC64]: Use sparc64_highest_unlocked_tlb_ent in __tsb_context_switch()

Instead of ugly hard-coded value.

Signed-off-by: David S. Miller <davem@davemloft.net>
David S. Miller 19 年之前
父节点
当前提交
6b6d017235
共有 1 个文件被更改,包括 8 次插入6 次删除
  1. 8 6
      arch/sparc64/kernel/tsb.S

+ 8 - 6
arch/sparc64/kernel/tsb.S

@@ -185,12 +185,14 @@ __tsb_context_switch:
 	 *
 	 * XXX Interactions with prom_world()...
 	 */
-	mov		TLB_TAG_ACCESS, %g1
-	stxa		%o2, [%g1] ASI_DMMU
-	membar		#Sync
-	mov		(61 << 3), %g1
-	stxa		%o3, [%g1] ASI_DTLB_DATA_ACCESS
-	membar		#Sync
+	sethi	%hi(sparc64_highest_unlocked_tlb_ent), %o4
+	mov	TLB_TAG_ACCESS, %g1
+	lduw	[%o4 + %lo(sparc64_highest_unlocked_tlb_ent)], %g2
+	stxa	%o2, [%g1] ASI_DMMU
+	membar	#Sync
+	sllx	%g2, 3, %g2
+	stxa	%o3, [%g2] ASI_DTLB_DATA_ACCESS
+	membar	#Sync
 9:
 	wrpr	%o5, %pstate