diff --git a/lapic.c b/lapic.c
index 7634358ca0300ae20b614eab639a77a1239abc91..e781499564a49b19ac6551bc136570ceae454404 100644
--- a/lapic.c
+++ b/lapic.c
@@ -201,17 +201,15 @@ lapic_startap(uchar apicid, int v)
   lapic_write(LAPIC_ICRHI, crhi);
   lapic_write(LAPIC_ICRLO, LAPIC_FIELD|APIC_LEVEL|
                            LAPIC_ASSERT|APIC_INIT);
-
-  while(j++ < 10000) {;}
+  for(j=0; j<10000; j++);  // 200us
   lapic_write(LAPIC_ICRLO, LAPIC_FIELD|APIC_LEVEL|
                            LAPIC_DEASSERT|APIC_INIT);
-
-  while(j++ < 1000000) {;}
+  for(j=0; j<1000000; j++);  // 10ms
 
   // in p9 code, this was i < 2, which is what the spec says on page B-3
   for(i = 0; i < 1; i++){
     lapic_write(LAPIC_ICRHI, crhi);
     lapic_write(LAPIC_ICRLO, LAPIC_FIELD|APIC_EDGE|APIC_STARTUP|(v/4096));
-    while(j++ < 100000) {;}
+    for(j=0; j<10000; j++);  // 200us
   }
 }