Commit c466ed2e authored by Dimitri Sivanich's avatar Dimitri Sivanich Committed by Ingo Molnar

x86, UV: set full apicid in uv_hub_send_ipi

The uv_hub_send_ipi() function needs to set the full apicid in the
UVH_IPI_INT mmr.
Signed-off-by: default avatarDimitri Sivanich <sivanich@sgi.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent f8a6b2b9
...@@ -114,16 +114,15 @@ int uv_wakeup_secondary(int phys_apicid, unsigned int start_rip) ...@@ -114,16 +114,15 @@ int uv_wakeup_secondary(int phys_apicid, unsigned int start_rip)
static void uv_send_IPI_one(int cpu, int vector) static void uv_send_IPI_one(int cpu, int vector)
{ {
unsigned long val, apicid, lapicid; unsigned long val, apicid;
int pnode; int pnode;
apicid = per_cpu(x86_cpu_to_apicid, cpu); apicid = per_cpu(x86_cpu_to_apicid, cpu);
lapicid = apicid & 0x3f; /* ZZZ macro needed */
pnode = uv_apicid_to_pnode(apicid); pnode = uv_apicid_to_pnode(apicid);
val = ( 1UL << UVH_IPI_INT_SEND_SHFT ) | val = (1UL << UVH_IPI_INT_SEND_SHFT) |
( lapicid << UVH_IPI_INT_APIC_ID_SHFT ) | (apicid << UVH_IPI_INT_APIC_ID_SHFT) |
( vector << UVH_IPI_INT_VECTOR_SHFT ); (vector << UVH_IPI_INT_VECTOR_SHFT);
uv_write_global_mmr64(pnode, UVH_IPI_INT, val); uv_write_global_mmr64(pnode, UVH_IPI_INT, val);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment