diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2007-05-19 20:34:35 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2007-05-19 20:34:35 +0000 |
commit | 71f3a38d9d990b2bc9029b76d7f2776c0796f747 (patch) | |
tree | 52336e5e15b0bf47a274266cf97fbac914764eb7 /sys/arch/m88k | |
parent | c335a0466bbcc58554afda172e71ddeba142858c (diff) |
Send an IPI in signotify() if the process runs on a different processor,
similar to the fix which went into i386 and amd64 a few weeks ago.
Diffstat (limited to 'sys/arch/m88k')
-rw-r--r-- | sys/arch/m88k/include/cpu.h | 8 | ||||
-rw-r--r-- | sys/arch/m88k/m88k/m88k_machdep.c | 16 |
2 files changed, 17 insertions, 7 deletions
diff --git a/sys/arch/m88k/include/cpu.h b/sys/arch/m88k/include/cpu.h index bcad10ecee2..317cc61704f 100644 --- a/sys/arch/m88k/include/cpu.h +++ b/sys/arch/m88k/include/cpu.h @@ -1,4 +1,4 @@ -/* $OpenBSD: cpu.h,v 1.21 2007/05/14 17:00:38 miod Exp $ */ +/* $OpenBSD: cpu.h,v 1.22 2007/05/19 20:34:32 miod Exp $ */ /* * Copyright (c) 1996 Nivas Madhur * Copyright (c) 1992, 1993 @@ -229,11 +229,7 @@ do { \ */ #define need_proftick(p) aston(p) -/* - * Notify the current process (p) that it has a signal pending, - * process as soon as possible. - */ -#define signotify(p) aston(p) +void signotify(struct proc *); /* * switchframe - should be double word aligned. diff --git a/sys/arch/m88k/m88k/m88k_machdep.c b/sys/arch/m88k/m88k/m88k_machdep.c index 9d7bee8e833..dc9a0643d9a 100644 --- a/sys/arch/m88k/m88k/m88k_machdep.c +++ b/sys/arch/m88k/m88k/m88k_machdep.c @@ -1,4 +1,4 @@ -/* $OpenBSD: m88k_machdep.c,v 1.19 2007/05/18 16:35:02 miod Exp $ */ +/* $OpenBSD: m88k_machdep.c,v 1.20 2007/05/19 20:34:34 miod Exp $ */ /* * Copyright (c) 1998, 1999, 2000, 2001 Steve Murphree, Jr. * Copyright (c) 1996 Nivas Madhur @@ -350,6 +350,20 @@ set_cpu_number(cpuid_t number) } /* + * Notify the current process (p) that it has a signal pending, + * process as soon as possible. + */ +void +signotify(struct proc *p) +{ + aston(p); +#ifdef MULTIPROCESSOR + if (p->p_cpu != curcpu() && p->p_cpu != NULL) + m88k_send_ipi(CI_IPI_NOTIFY, p->p_cpu->ci_cpuid); +#endif +} + +/* * Soft interrupt interface */ |