2009-11-19 23:12:17

by Cliff Wickman

[permalink] [raw]
Subject: [PATCH] x86: sgi uv BAU initialization

From: Cliff Wickman <[email protected]>

A memory mapped register that affects the SGI UV Broadcast Assist Unit's
interrupt handling may sometimes be unintialized.

Remove the condition on its initialization, as that condition can be
randomly satisfied by a hardware reset.

Diffed against 2.6.32-rc7

Signed-off-by: Cliff Wickman <[email protected]>
---
arch/x86/kernel/tlb_uv.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)

Index: 091119.linux/arch/x86/kernel/tlb_uv.c
===================================================================
--- 091119.linux.orig/arch/x86/kernel/tlb_uv.c
+++ 091119.linux/arch/x86/kernel/tlb_uv.c
@@ -817,10 +817,8 @@ static int __init uv_init_blade(int blad
*/
apicid = blade_to_first_apicid(blade);
pa = uv_read_global_mmr64(pnode, UVH_BAU_DATA_CONFIG);
- if ((pa & 0xff) != UV_BAU_MESSAGE) {
- uv_write_global_mmr64(pnode, UVH_BAU_DATA_CONFIG,
+ uv_write_global_mmr64(pnode, UVH_BAU_DATA_CONFIG,
((apicid << 32) | UV_BAU_MESSAGE));
- }
return 0;
}


2009-11-23 18:28:21

by Cliff Wickman

[permalink] [raw]
Subject: [tip:x86/mm] x86: SGI UV: Fix BAU initialization

Commit-ID: e38e2af1c57c3eb5211331a5b4fcaae0c4a2a918
Gitweb: http://git.kernel.org/tip/e38e2af1c57c3eb5211331a5b4fcaae0c4a2a918
Author: Cliff Wickman <[email protected]>
AuthorDate: Thu, 19 Nov 2009 17:12:43 -0600
Committer: Ingo Molnar <[email protected]>
CommitDate: Mon, 23 Nov 2009 19:12:50 +0100

x86: SGI UV: Fix BAU initialization

A memory mapped register that affects the SGI UV Broadcast
Assist Unit's interrupt handling may sometimes be unintialized.

Remove the condition on its initialization, as that condition
can be randomly satisfied by a hardware reset.

Signed-off-by: Cliff Wickman <[email protected]>
Cc: <[email protected]>
LKML-Reference: <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>
---
arch/x86/kernel/tlb_uv.c | 4 +---
1 files changed, 1 insertions(+), 3 deletions(-)

diff --git a/arch/x86/kernel/tlb_uv.c b/arch/x86/kernel/tlb_uv.c
index 503c1f2..af21e55 100644
--- a/arch/x86/kernel/tlb_uv.c
+++ b/arch/x86/kernel/tlb_uv.c
@@ -819,10 +819,8 @@ static int __init uv_init_blade(int blade)
*/
apicid = blade_to_first_apicid(blade);
pa = uv_read_global_mmr64(pnode, UVH_BAU_DATA_CONFIG);
- if ((pa & 0xff) != UV_BAU_MESSAGE) {
- uv_write_global_mmr64(pnode, UVH_BAU_DATA_CONFIG,
+ uv_write_global_mmr64(pnode, UVH_BAU_DATA_CONFIG,
((apicid << 32) | UV_BAU_MESSAGE));
- }
return 0;
}