В Linux все системные вызовы возвращаются долго, если они вообще возвращаются. Допустим, вы объявляете системный вызов, используя:
SYSCALL_DEFINE0(mycall)
{
/* ... */
}
В результате:
asmlinkage long sys_mycall(void)
Если у вас нет никакого полезного возврата, и вызов не может быть неудачным, просто возвращайте 0 каждый раз, чтобы сигнализировать об успехе.