Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9c26f52b authored by Cliff Wickman's avatar Cliff Wickman Committed by Ingo Molnar
Browse files

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: default avatarCliff 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: default avatarIngo Molnar <mingo@elte.hu>
parent 7262b6e4
Loading
Loading
Loading
Loading
+2 −7
Original line number Diff line number Diff line
@@ -711,7 +711,6 @@ uv_activation_descriptor_init(int node, int pnode)
	unsigned long pa;
	unsigned long m;
	unsigned long n;
	unsigned long mmr_image;
	struct bau_desc *adp;
	struct bau_desc *ad2;

@@ -727,12 +726,8 @@ uv_activation_descriptor_init(int node, int pnode)
	n = pa >> uv_nshift;
	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,
	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