static void read_block(long ioaddr, int length, unsigned char *p, int data_mode)
 {
-
        if (data_mode <= 3) { /* Mode 0 or 1 */
                outb(Ctrl_LNibRead, ioaddr + PAR_CONTROL);
                outb(length == 8  ?  RdAddr | HNib | MAR  :  RdAddr | MAR,
                         ioaddr + PAR_DATA);
                if (data_mode <= 1) { /* Mode 0 or 1 */
-                       do  *p++ = read_byte_mode0(ioaddr);  while (--length > 0);
-               } else  /* Mode 2 or 3 */
-                       do  *p++ = read_byte_mode2(ioaddr);  while (--length > 0);
-       } else if (data_mode <= 5)
-               do      *p++ = read_byte_mode4(ioaddr);  while (--length > 0);
-       else
-               do      *p++ = read_byte_mode6(ioaddr);  while (--length > 0);
+                       do { *p++ = read_byte_mode0(ioaddr); } while (--length > 0);
+               } else { /* Mode 2 or 3 */
+                       do { *p++ = read_byte_mode2(ioaddr); } while (--length > 0);
+               }
+       } else if (data_mode <= 5) {
+               do { *p++ = read_byte_mode4(ioaddr); } while (--length > 0);
+       } else {
+               do { *p++ = read_byte_mode6(ioaddr); } while (--length > 0);
+       }
 
-    outb(EOC+HNib+MAR, ioaddr + PAR_DATA);
+       outb(EOC+HNib+MAR, ioaddr + PAR_DATA);
        outb(Ctrl_SelData, ioaddr + PAR_CONTROL);
 }
 
 
 
        case PLIP_PK_DATA:
                lbuf = rcv->skb->data;
-               do
+               do {
                        if (plip_receive(nibble_timeout, dev,
                                         &rcv->nibble, &lbuf[rcv->byte]))
                                return TIMEOUT;
-               while (++rcv->byte < rcv->length.h);
-               do
+               } while (++rcv->byte < rcv->length.h);
+               do {
                        rcv->checksum += lbuf[--rcv->byte];
-               while (rcv->byte);
+               } while (rcv->byte);
                rcv->state = PLIP_PK_CHECKSUM;
 
        case PLIP_PK_CHECKSUM:
                snd->checksum = 0;
 
        case PLIP_PK_DATA:
-               do
+               do {
                        if (plip_send(nibble_timeout, dev,
                                      &snd->nibble, lbuf[snd->byte]))
                                return TIMEOUT;
-               while (++snd->byte < snd->length.h);
-               do
+               } while (++snd->byte < snd->length.h);
+               do {
                        snd->checksum += lbuf[--snd->byte];
-               while (snd->byte);
+               } while (snd->byte);
                snd->state = PLIP_PK_CHECKSUM;
 
        case PLIP_PK_CHECKSUM:
 
        void __iomem *mdio_addr = np->base + MIICtrl + (phy_id<<7) + (location<<2);
        int result, boguscnt=1000;
        /* ??? Should we add a busy-wait here? */
-       do
+       do {
                result = readl(mdio_addr);
-       while ((result & 0xC0000000) != 0x80000000 && --boguscnt > 0);
+       } while ((result & 0xC0000000) != 0x80000000 && --boguscnt > 0);
        if (boguscnt == 0)
                return 0;
        if ((result & 0xffff) == 0xffff)