If the value read from HERMES_RID_TXQUEUEEMPTY becomes 0 after exactly
100 readings, we wrongly consider it a timeout.  Rewrite the clever
while loop as a for loop that does the right thing and looks simpler.
Reported by Juha Leppanen <juha_motorsportcom@luukku.com>
Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
        }
 
        /* Wait upto 100ms for tx queue to empty */
-       k = 100;
-       do {
-               k--;
+       for (k = 100; k > 0; k--) {
                udelay(1000);
                ret = hermes_read_wordrec(hw, USER_BAP, HERMES_RID_TXQUEUEEMPTY,
                                          &xmitting);
-               if (ret)
+               if (ret || !xmitting)
                        break;
-       } while ((k > 0) && xmitting);
+       }
 
        if (k == 0)
                ret = -ETIMEDOUT;