diff --git a/src/syscall/process.rs b/src/syscall/process.rs
index 8de03eb7a8d7023a07b8fac6d070a54648485498..f06b6c826aa2238a7cc65847e19699b7756046bb 100644
--- a/src/syscall/process.rs
+++ b/src/syscall/process.rs
@@ -380,7 +380,7 @@ pub fn clone(flags: CloneFlags, stack_base: usize) -> Result<ContextId> {
             context.sigmask = sigmask;
             context.umask = umask;
 
-            context.cpu_id = cpu_id;
+            context.cpu_id = cpu_id_opt;
 
             context.status = context::Status::Runnable;