diff --git a/arch/lkl/kernel/setup.c b/arch/lkl/kernel/setup.c index 2eb182087b92e..ea5c434895a3a 100644 --- a/arch/lkl/kernel/setup.c +++ b/arch/lkl/kernel/setup.c @@ -131,6 +131,8 @@ int kernel_execve(const char *filename, char *const argv[], char *const envp[]) extern void *halt_sem; extern void free_IRQ(void); +extern void free_syscall(void); + int __init lkl_start_kernel(struct lkl_native_operations *nops, const char *fmt, ...) { va_list ap; @@ -153,6 +155,7 @@ int __init lkl_start_kernel(struct lkl_native_operations *nops, const char *fmt, lkl_nops->timer(0); + free_syscall(); free_IRQ(); /* * We are almost dead, announce application. diff --git a/arch/lkl/kernel/syscalls.c b/arch/lkl/kernel/syscalls.c index cb148195ad547..0d617e6f7452c 100644 --- a/arch/lkl/kernel/syscalls.c +++ b/arch/lkl/kernel/syscalls.c @@ -611,3 +611,8 @@ int __init syscall_init(void) } late_initcall(syscall_init); + +void free_syscall(void) +{ + lkl_nops->sem_free(syscall_queue_hash_lock); +}