Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 139733
b: refs/heads/master
c: 66666e5
h: refs/heads/master
i:
  139731: 3fc9d1b
v: v3
  • Loading branch information
Jack Steiner authored and Linus Torvalds committed Apr 3, 2009
1 parent 618d3be commit 1bb896e
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 8 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c7296700edc8a0ff49126a4af0bfca6d546c470a
refs/heads/master: 66666e50fcd69d80117d7d243ce02e1f774cbaf5
6 changes: 6 additions & 0 deletions trunk/arch/ia64/include/asm/uv/uv_hub.h
Original file line number Diff line number Diff line change
Expand Up @@ -305,5 +305,11 @@ static inline int uv_num_possible_blades(void)
return 1;
}

static inline void uv_hub_send_ipi(int pnode, int apicid, int vector)
{
/* not currently needed on ia64 */
}


#endif /* __ASM_IA64_UV_HUB__ */

12 changes: 12 additions & 0 deletions trunk/arch/x86/include/asm/uv/uv_hub.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
#include <linux/timer.h>
#include <asm/types.h>
#include <asm/percpu.h>
#include <asm/uv/uv_mmrs.h>


/*
Expand Down Expand Up @@ -398,6 +399,7 @@ static inline void uv_set_scir_bits(unsigned char value)
uv_write_local_mmr8(uv_hub_info->scir.offset, value);
}
}

static inline void uv_set_cpu_scir_bits(int cpu, unsigned char value)
{
if (uv_cpu_hub_info(cpu)->scir.state != value) {
Expand All @@ -406,5 +408,15 @@ static inline void uv_set_cpu_scir_bits(int cpu, unsigned char value)
}
}

static inline void uv_hub_send_ipi(int pnode, int apicid, int vector)
{
unsigned long val;

val = (1UL << UVH_IPI_INT_SEND_SHFT) |
((apicid & 0x3f) << UVH_IPI_INT_APIC_ID_SHFT) |
(vector << UVH_IPI_INT_VECTOR_SHFT);
uv_write_global_mmr64(pnode, UVH_IPI_INT, val);
}

#endif /* CONFIG_X86_64 */
#endif /* _ASM_X86_UV_UV_HUB_H */
9 changes: 2 additions & 7 deletions trunk/arch/x86/kernel/apic/x2apic_uv_x.c
Original file line number Diff line number Diff line change
Expand Up @@ -118,17 +118,12 @@ static int uv_wakeup_secondary(int phys_apicid, unsigned long start_rip)

static void uv_send_IPI_one(int cpu, int vector)
{
unsigned long val, apicid;
unsigned long apicid;
int pnode;

apicid = per_cpu(x86_cpu_to_apicid, cpu);
pnode = uv_apicid_to_pnode(apicid);

val = (1UL << UVH_IPI_INT_SEND_SHFT) |
(apicid << UVH_IPI_INT_APIC_ID_SHFT) |
(vector << UVH_IPI_INT_VECTOR_SHFT);

uv_write_global_mmr64(pnode, UVH_IPI_INT, val);
uv_hub_send_ipi(pnode, apicid, vector);
}

static void uv_send_IPI_mask(const struct cpumask *mask, int vector)
Expand Down

0 comments on commit 1bb896e

Please sign in to comment.