The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [BUG] smctr.c changes in latest BK
@ 2003-02-13 22:46 Jochen Friedrich
  2003-02-13 23:05 ` Jochen Friedrich
  0 siblings, 1 reply; 5+ messages in thread
From: Jochen Friedrich @ 2003-02-13 22:46 UTC (permalink / raw)
  To: Linux Kernel; +Cc: Linus Torvalds, Jeff Garzik

Hi,

===== smctr.c 1.15 vs 1.16 =====
--- 1.15/drivers/net/tokenring/smctr.c  Thu Nov 21 23:06:12 2002
+++ 1.16/drivers/net/tokenring/smctr.c  Thu Feb 13 07:23:32 2003
@@ -3064,7 +3064,7 @@
         __u8 r;

         /* Check if node address has been specified by user. (non-0) */
-        for(i = 0; ((i < 6) && (dev->dev_addr[i] == 0)); i++);
+        for(i = 0; ((i < 6) && (dev->dev_addr[i] == 0)); i++)
         {
                 if(i != 6)
                 {

Please revert this one as it is just wrong. As already mentioned here in
LKML (IIRC it was Alan), the semicolon is really intended here.

The above loop just runs until a non-zero byte is found in the MAC
address or all 6 bytes have been checked. A value of i=6 will then
indicate an all-zero MAC address.

However, the block following the for loop is completely unnecessary and
confusing. This patch just removes the irritating braces:

===== smctr.c 1.17 vs edited =====
--- 1.17/drivers/net/tokenring/smctr.c  Thu Feb 13 22:47:11 2003
+++ edited/smctr.c      Thu Feb 13 23:44:07 2003
@@ -3058,26 +3058,25 @@
         __u8 r;

         /* Check if node address has been specified by user. (non-0) */
-        for(i = 0; ((i < 6) && (dev->dev_addr[i] == 0)); i++)
+        for(i = 0; ((i < 6) && (dev->dev_addr[i] == 0)); i++);
+
+        if(i != 6) /* Node addr is not 00:00:00:00:00:00 */
         {
-                if(i != 6)
+                for(i = 0; i < 6; i++)
                 {
-                        for(i = 0; i < 6; i++)
-                        {
-                                r = inb(ioaddr + LAR0 + i);
-                                dev->dev_addr[i] = (char)r;
-                        }
-                        dev->addr_len = 6;
+                        r = inb(ioaddr + LAR0 + i);
+                        dev->dev_addr[i] = (char)r;
                 }
-                else    /* Node addr. not given by user, read it from board. */
+                dev->addr_len = 6;
+        }
+        else    /* Node addr. not given by user, read it from board. */
+        {
+                for(i = 0; i < 6; i++)
                 {
-                        for(i = 0; i < 6; i++)
-                        {
-                                r = inb(ioaddr + LAR0 + i);
-                                dev->dev_addr[i] = (char)r;
-                        }
-                        dev->addr_len = 6;
+                        r = inb(ioaddr + LAR0 + i);
+                        dev->dev_addr[i] = (char)r;
                 }
+                dev->addr_len = 6;
         }

         return (0);

Thanks,
--jochen


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2003-02-14 10:06 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-02-13 22:46 [BUG] smctr.c changes in latest BK Jochen Friedrich
2003-02-13 23:05 ` Jochen Friedrich
2003-02-13 23:34   ` Jeff Garzik
2003-02-14  9:48   ` Olivier Galibert
2003-02-14 10:15     ` Jochen Friedrich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox