Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 107626
b: refs/heads/master
c: 5e0797e
h: refs/heads/master
v: v3
  • Loading branch information
David S. Miller committed Aug 4, 2008
1 parent a63e5ee commit 0103b73
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 7 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: abd9e6982815ad7bd2c70dbf4cc0c08b48229d6e
refs/heads/master: 5e0797e5b84408a13260a107e2f7a49ee6342ae4
19 changes: 13 additions & 6 deletions trunk/arch/sparc64/kernel/smp.c
Original file line number Diff line number Diff line change
Expand Up @@ -756,6 +756,8 @@ static void hypervisor_xcall_deliver(u64 data0, u64 data1, u64 data2, cpumask_t
printk("]\n");
}

static void (*xcall_deliver)(u64, u64, u64, cpumask_t);

/* Send cross call to all processors mentioned in MASK
* except self.
*/
Expand All @@ -767,12 +769,7 @@ static void smp_cross_call_masked(unsigned long *func, u32 ctx, u64 data1, u64 d
cpus_and(mask, mask, cpu_online_map);
cpu_clear(this_cpu, mask);

if (tlb_type == spitfire)
spitfire_xcall_deliver(data0, data1, data2, mask);
else if (tlb_type == cheetah || tlb_type == cheetah_plus)
cheetah_xcall_deliver(data0, data1, data2, mask);
else
hypervisor_xcall_deliver(data0, data1, data2, mask);
xcall_deliver(data0, data1, data2, mask);
/* NOTE: Caller runs local copy on master. */

put_cpu();
Expand Down Expand Up @@ -1202,6 +1199,16 @@ void __devinit smp_prepare_boot_cpu(void)
{
}

void __init smp_setup_processor_id(void)
{
if (tlb_type == spitfire)
xcall_deliver = spitfire_xcall_deliver;
else if (tlb_type == cheetah || tlb_type == cheetah_plus)
xcall_deliver = cheetah_xcall_deliver;
else
xcall_deliver = hypervisor_xcall_deliver;
}

void __devinit smp_fill_in_sib_core_maps(void)
{
unsigned int i;
Expand Down

0 comments on commit 0103b73

Please sign in to comment.