diff --git a/kernel/defs.h b/kernel/defs.h
index 62b9292..48641f5 100644
--- a/kernel/defs.h
+++ b/kernel/defs.h
@@ -132,9 +132,9 @@ int             strncmp(const char*, const char*, uint);
 char*           strncpy(char*, const char*, int);
 
 // syscall.c
-int             argint(int, int*);
+void            argint(int, int*);
 int             argstr(int, char*, int);
-int             argaddr(int, uint64 *);
+void             argaddr(int, uint64 *);
 int             fetchstr(uint64, char*, int);
 int             fetchaddr(uint64, uint64*);
 void            syscall();
diff --git a/kernel/syscall.c b/kernel/syscall.c
index dd7a33e..ee94696 100644
--- a/kernel/syscall.c
+++ b/kernel/syscall.c
@@ -53,21 +53,19 @@ argraw(int n)
 }
 
 // Fetch the nth 32-bit system call argument.
-int
+void
 argint(int n, int *ip)
 {
   *ip = argraw(n);
-  return 0;
 }
 
 // Retrieve an argument as a pointer.
 // Doesn't check for legality, since
 // copyin/copyout will do that.
-int
+void
 argaddr(int n, uint64 *ip)
 {
   *ip = argraw(n);
-  return 0;
 }
 
 // Fetch the nth word-sized system call argument as a null-terminated string.
@@ -77,8 +75,7 @@ int
 argstr(int n, char *buf, int max)
 {
   uint64 addr;
-  if(argaddr(n, &addr) < 0)
-    return -1;
+  argaddr(n, &addr);
   return fetchstr(addr, buf, max);
 }
 
diff --git a/kernel/sysfile.c b/kernel/sysfile.c
index 5dc453b..970a72a 100644
--- a/kernel/sysfile.c
+++ b/kernel/sysfile.c
@@ -24,8 +24,7 @@ argfd(int n, int *pfd, struct file **pf)
   int fd;
   struct file *f;
 
-  if(argint(n, &fd) < 0)
-    return -1;
+  argint(n, &fd);
   if(fd < 0 || fd >= NOFILE || (f=myproc()->ofile[fd]) == 0)
     return -1;
   if(pfd)
@@ -73,7 +72,9 @@ sys_read(void)
   int n;
   uint64 p;
 
-  if(argfd(0, 0, &f) < 0 || argint(2, &n) < 0 || argaddr(1, &p) < 0)
+  argaddr(1, &p);
+  argint(2, &n);
+  if(argfd(0, 0, &f) < 0)
     return -1;
   return fileread(f, p, n);
 }
@@ -84,8 +85,10 @@ sys_write(void)
   struct file *f;
   int n;
   uint64 p;
-
-  if(argfd(0, 0, &f) < 0 || argint(2, &n) < 0 || argaddr(1, &p) < 0)
+  
+  argaddr(1, &p);
+  argint(2, &n);
+  if(argfd(0, 0, &f) < 0)
     return -1;
 
   return filewrite(f, p, n);
@@ -110,7 +113,8 @@ sys_fstat(void)
   struct file *f;
   uint64 st; // user pointer to struct stat
 
-  if(argfd(0, 0, &f) < 0 || argaddr(1, &st) < 0)
+  argaddr(1, &st);
+  if(argfd(0, 0, &f) < 0)
     return -1;
   return filestat(f, st);
 }
@@ -292,7 +296,8 @@ sys_open(void)
   struct inode *ip;
   int n;
 
-  if((n = argstr(0, path, MAXPATH)) < 0 || argint(1, &omode) < 0)
+  argint(1, &omode);
+  if((n = argstr(0, path, MAXPATH)) < 0)
     return -1;
 
   begin_op();
@@ -375,9 +380,9 @@ sys_mknod(void)
   int major, minor;
 
   begin_op();
+  argint(1, &major);
+  argint(2, &minor);
   if((argstr(0, path, MAXPATH)) < 0 ||
-     argint(1, &major) < 0 ||
-     argint(2, &minor) < 0 ||
      (ip = create(path, T_DEVICE, major, minor)) == 0){
     end_op();
     return -1;
@@ -419,7 +424,8 @@ sys_exec(void)
   int i;
   uint64 uargv, uarg;
 
-  if(argstr(0, path, MAXPATH) < 0 || argaddr(1, &uargv) < 0){
+  argaddr(1, &uargv);
+  if(argstr(0, path, MAXPATH) < 0) {
     return -1;
   }
   memset(argv, 0, sizeof(argv));
@@ -462,8 +468,7 @@ sys_pipe(void)
   int fd0, fd1;
   struct proc *p = myproc();
 
-  if(argaddr(0, &fdarray) < 0)
-    return -1;
+  argaddr(0, &fdarray);
   if(pipealloc(&rf, &wf) < 0)
     return -1;
   fd0 = -1;
diff --git a/kernel/sysproc.c b/kernel/sysproc.c
index c74def2..ecaa8cc 100644
--- a/kernel/sysproc.c
+++ b/kernel/sysproc.c
@@ -10,8 +10,7 @@ uint64
 sys_exit(void)
 {
   int n;
-  if(argint(0, &n) < 0)
-    return -1;
+  argint(0, &n);
   exit(n);
   return 0;  // not reached
 }
@@ -32,8 +31,7 @@ uint64
 sys_wait(void)
 {
   uint64 p;
-  if(argaddr(0, &p) < 0)
-    return -1;
+  argaddr(0, &p);
   return wait(p);
 }
 
@@ -43,8 +41,7 @@ sys_sbrk(void)
   uint64 addr;
   int n;
 
-  if(argint(0, &n) < 0)
-    return -1;
+  argint(0, &n);
   addr = myproc()->sz;
   if(growproc(n) < 0)
     return -1;
@@ -57,8 +54,7 @@ sys_sleep(void)
   int n;
   uint ticks0;
 
-  if(argint(0, &n) < 0)
-    return -1;
+  argint(0, &n);
   acquire(&tickslock);
   ticks0 = ticks;
   while(ticks - ticks0 < n){
@@ -77,8 +73,7 @@ sys_kill(void)
 {
   int pid;
 
-  if(argint(0, &pid) < 0)
-    return -1;
+  argint(0, &pid);
   return kill(pid);
 }