瀏覽代碼

x86: Fix uv bau sending buffer initialization

The initialization of the UV Broadcast Assist Unit's sending
buffers was making an invalid assumption about the
initialization of an MMR that defines its address.

The BIOS will not be providing that MMR.  So
uv_activation_descriptor_init() should unconditionally set it.

Tested on UV simulator.

Signed-off-by: Cliff Wickman <cpw@sgi.com>
Cc: <stable@kernel.org> # for v2.6.30.x
LKML-Reference: <E1MJTfj-0005i1-W8@eag09.americas.sgi.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Cliff Wickman 16 年之前
父節點
當前提交
9c26f52b90
共有 1 個文件被更改,包括 2 次插入7 次删除
  1. 2 7
      arch/x86/kernel/tlb_uv.c

+ 2 - 7
arch/x86/kernel/tlb_uv.c

@@ -711,7 +711,6 @@ uv_activation_descriptor_init(int node, int pnode)
 	unsigned long pa;
 	unsigned long pa;
 	unsigned long m;
 	unsigned long m;
 	unsigned long n;
 	unsigned long n;
-	unsigned long mmr_image;
 	struct bau_desc *adp;
 	struct bau_desc *adp;
 	struct bau_desc *ad2;
 	struct bau_desc *ad2;
 
 
@@ -727,12 +726,8 @@ uv_activation_descriptor_init(int node, int pnode)
 	n = pa >> uv_nshift;
 	n = pa >> uv_nshift;
 	m = pa & uv_mmask;
 	m = pa & uv_mmask;
 
 
-	mmr_image = uv_read_global_mmr64(pnode, UVH_LB_BAU_SB_DESCRIPTOR_BASE);
-	if (mmr_image) {
-		uv_write_global_mmr64(pnode, (unsigned long)
-				      UVH_LB_BAU_SB_DESCRIPTOR_BASE,
-				      (n << UV_DESC_BASE_PNODE_SHIFT | m));
-	}
+	uv_write_global_mmr64(pnode, UVH_LB_BAU_SB_DESCRIPTOR_BASE,
+			      (n << UV_DESC_BASE_PNODE_SHIFT | m));
 
 
 	/*
 	/*
 	 * initializing all 8 (UV_ITEMS_PER_DESCRIPTOR) descriptors for each
 	 * initializing all 8 (UV_ITEMS_PER_DESCRIPTOR) descriptors for each