Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 21511
b: refs/heads/master
c: d371c0c
h: refs/heads/master
i:
  21509: 88eb847
  21507: 10198fe
  21503: f10775e
v: v3
  • Loading branch information
David S. Miller authored and David S. Miller committed Mar 20, 2006
1 parent 24e1a3b commit 5d322ed
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 55 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: c79f76777d678ba454aa727800e1386a1fd1f2e8
refs/heads/master: d371c0c17466b7e7bb4d395f96aa885a23df1073
54 changes: 0 additions & 54 deletions trunk/arch/sparc64/kernel/smp.c
Original file line number Diff line number Diff line change
Expand Up @@ -557,7 +557,6 @@ static void cheetah_xcall_deliver(u64 data0, u64 data1, u64 data2, cpumask_t mas
}
}

#if 0
/* Multi-cpu list version. */
static int init_cpu_list(u16 *list, cpumask_t mask)
{
Expand Down Expand Up @@ -631,59 +630,6 @@ static void hypervisor_xcall_deliver(u64 data0, u64 data1, u64 data2, cpumask_t

put_cpu();
}
#else
/* Single-cpu list version. */
static void hypervisor_xcall_deliver(u64 data0, u64 data1, u64 data2, cpumask_t mask)
{
int this_cpu = get_cpu();
struct trap_per_cpu *tb = &trap_block[this_cpu];
u64 *mondo = __va(tb->cpu_mondo_block_pa);
u16 *cpu_list = __va(tb->cpu_list_pa);
int i;

mondo[0] = data0;
mondo[1] = data1;
mondo[2] = data2;
wmb();

for_each_cpu_mask(i, mask) {
int retries = 0;

do {
register unsigned long func __asm__("%o5");
register unsigned long arg0 __asm__("%o0");
register unsigned long arg1 __asm__("%o1");
register unsigned long arg2 __asm__("%o2");

cpu_list[0] = i;
func = HV_FAST_CPU_MONDO_SEND;
arg0 = 1;
arg1 = tb->cpu_list_pa;
arg2 = tb->cpu_mondo_block_pa;

__asm__ __volatile__("ta %8"
: "=&r" (func), "=&r" (arg0),
"=&r" (arg1), "=&r" (arg2)
: "0" (func), "1" (arg0),
"2" (arg1), "3" (arg2),
"i" (HV_FAST_TRAP)
: "memory");
if (likely(arg0 == HV_EOK))
break;

if (unlikely(++retries > 100)) {
printk("CPU[%d]: sun4v mondo error %lu\n",
this_cpu, func);
break;
}

udelay(2 * i);
} while (1);
}

put_cpu();
}
#endif

/* Send cross call to all processors mentioned in MASK
* except self.
Expand Down

0 comments on commit 5d322ed

Please sign in to comment.