diff --git a/api/api.c b/api/api.c
index 10f83eb..0598d90 100644
--- a/api/api.c
+++ b/api/api.c
@@ -231,7 +231,7 @@
 		/* start over - clean up enumeration */
 		dev_enum_reset();	/* XXX shouldn't the name contain 'stor'? */
 		debugf("RESTART ENUM\n");
-		
+
 		/* net device enumeration first */
 		if (dev_enum_net(di))
 			return 0;
@@ -365,7 +365,7 @@
 		return API_EINVAL;
 
 	if (di->type & DEV_TYP_STOR)
-		/* 
+		/*
 		 * write to storage is currently not supported by U-Boot:
 		 * no storage device implements block_write() method
 		 */
@@ -523,7 +523,7 @@
 	char *last, **next;
 
 	last = (char *)va_arg(ap, u_int32_t);
-	
+
 	if ((next = (char **)va_arg(ap, u_int32_t)) == NULL)
 		return API_EINVAL;
 
@@ -540,7 +540,7 @@
 					return 0;
 				}
 			}
-		
+
 			if (envmatch((uchar *)last, i) < 0)
 				continue;
 
@@ -567,7 +567,7 @@
  * serviced until finished.
  *
  * e.g. syscall(1, int *, u_int32_t, u_int32_t, u_int32_t, u_int32_t);
- * 
+ *
  * call:	syscall number
  *
  * retval:	points to the return value placeholder, this is the place the
@@ -655,7 +655,7 @@
 
 	if (!si->mr || !size || (flags == 0))
 		return;
-	
+
 	/* find free slot */
 	for (i = 0; i < si->mr_no; i++)
 		if (si->mr[i].flags == 0) {
