Let the interrupt subsystem allocate memory for the IPI handle,
authorvisa <visa@openbsd.org>
Mon, 29 Jan 2018 14:51:57 +0000 (14:51 +0000)
committervisa <visa@openbsd.org>
Mon, 29 Jan 2018 14:51:57 +0000 (14:51 +0000)
to drop remaining uses of `ci_ipiih'. In addition, mark the IPI
handler MP-safe.

sys/arch/sgi/sgi/ip27_machdep.c
sys/arch/sgi/sgi/ip30_machdep.c

index 6aa9acc..f4bffbb 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: ip27_machdep.c,v 1.77 2017/02/11 03:44:22 visa Exp $  */
+/*     $OpenBSD: ip27_machdep.c,v 1.78 2018/01/29 14:51:57 visa Exp $  */
 
 /*
  * Copyright (c) 2008, 2009 Miodrag Vallat.
@@ -1178,8 +1178,8 @@ hw_ipi_intr_establish(int (*func)(void *), u_long cpuid)
        int intr;
 
        intr = IP27_SLICE_IPI(ci->ci_slice);
-       return ip27_hub_intr_establish(func, (void *)cpuid, intr, IPL_IPI,
-           NULL, &ci->ci_ipiih);
+       return ip27_hub_intr_establish(func, (void *)cpuid, intr,
+           IPL_IPI | IPL_MPSAFE, NULL, NULL);
 }
 
 void
index 21c5875..6d50f85 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: ip30_machdep.c,v 1.68 2016/10/27 13:19:27 visa Exp $  */
+/*     $OpenBSD: ip30_machdep.c,v 1.69 2018/01/29 14:51:57 visa Exp $  */
 
 /*
  * Copyright (c) 2008, 2009 Miodrag Vallat.
@@ -590,7 +590,7 @@ int
 hw_ipi_intr_establish(int (*func)(void *), u_long cpuid)
 {
        return xheart_intr_establish(func, (void *)cpuid, HEART_ISR_IPI(cpuid), 
-           IPL_IPI, NULL, &curcpu()->ci_ipiih);
+           IPL_IPI | IPL_MPSAFE, NULL, NULL);
 };
 
 void