diff --git a/kernel/exit.c b/kernel/exit.c
index cd20bf07e9e3b7bb2260c4a5939642c9e4bcb0a5..53872bf993fa79d46b6e252db4f393c6a3e6828f 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -1378,7 +1378,7 @@ static int wait_task_stopped(struct task_struct *p,
 	if (!retval && infop)
 		retval = put_user(0, &infop->si_errno);
 	if (!retval && infop)
-		retval = put_user(why, &infop->si_code);
+		retval = put_user((short)why, &infop->si_code);
 	if (!retval && infop)
 		retval = put_user(exit_code, &infop->si_status);
 	if (!retval && infop)