sem-bare.h: Use seL4_WaitWithMRs syscall for mcs This syscall doesn't need a reply cap to be set on mcs and can work without an IPC buffer setup.
diff --git a/libsel4sync/include/sync/sem-bare.h b/libsel4sync/include/sync/sem-bare.h index a635fbd..e0d7ef7 100644 --- a/libsel4sync/include/sync/sem-bare.h +++ b/libsel4sync/include/sync/sem-bare.h
@@ -41,14 +41,18 @@ if (oldval <= 0) { #ifdef CONFIG_ARCH_IA32 #ifdef CONFIG_KERNEL_RT - seL4_RecvWithMRs(ep, NULL, NULL); + seL4_WaitWithMRs(ep, NULL, NULL); #else seL4_RecvWithMRs(ep, NULL, NULL, NULL); #endif /* CONFIG_KERNEL_RT */ #else // all other platforms have 4 mrs - +#ifdef CONFIG_KERNEL_RT + seL4_WaitWithMRs(ep, NULL, NULL, NULL, NULL, NULL); +#else seL4_RecvWithMRs(ep, NULL, NULL, NULL, NULL, NULL); #endif + +#endif /* Even though we performed an acquire barrier during the atomic * decrement we did not actually have the lock yet, so we have * to do another one now */