summaryrefslogtreecommitdiff
path: root/sys/arch/m88k
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2007-05-19 20:34:35 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2007-05-19 20:34:35 +0000
commit71f3a38d9d990b2bc9029b76d7f2776c0796f747 (patch)
tree52336e5e15b0bf47a274266cf97fbac914764eb7 /sys/arch/m88k
parentc335a0466bbcc58554afda172e71ddeba142858c (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.h8
-rw-r--r--sys/arch/m88k/m88k/m88k_machdep.c16
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
*/