I noticed these macros, I think they should have more parenthesis. I
don't know how to test this though.
Index: sys/arch/alpha/include/cpu.h
===================================================================
RCS file: /cvs/src/sys/arch/alpha/include/cpu.h,v
retrieving revision 1.55
diff -u -p -r1.55 cpu.h
--- sys/arch/alpha/include/cpu.h 2 Jul 2015 01:33:59 -0000 1.55
+++ sys/arch/alpha/include/cpu.h 1 Mar 2016 18:57:50 -0000
@@ -320,7 +320,7 @@ do {
\
#define signotify(p) aston(p)
#endif
-#define aston(p) (p)->p_md.md_astpending = 1
+#define aston(p) ((p)->p_md.md_astpending = 1)
#endif /* _KERNEL */
/*
Index: sys/arch/mips64/include/cpu.h
===================================================================
RCS file: /cvs/src/sys/arch/mips64/include/cpu.h,v
retrieving revision 1.108
diff -u -p -r1.108 cpu.h
--- sys/arch/mips64/include/cpu.h 5 Jan 2016 05:27:54 -0000 1.108
+++ sys/arch/mips64/include/cpu.h 1 Mar 2016 18:57:50 -0000
@@ -318,12 +318,12 @@ void cp0_calibrate(struct cpu_info *);
* process as soon as possible.
*/
#ifdef MULTIPROCESSOR
-#define signotify(p) (aston(p), cpu_unidle(p->p_cpu))
+#define signotify(p) (aston(p), cpu_unidle((p)->p_cpu))
#else
#define signotify(p) aston(p)
#endif
-#define aston(p) p->p_md.md_astpending = 1
+#define aston(p) ((p)->p_md.md_astpending = 1)
#ifdef CPU_R8000
#define mips_sync() __asm__ volatile ("lw $0, 0(%0)" :: \
--
Michal Mazurek