NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/60592: random Mac address generation in genet Ethernet driver causes problems



The following reply was made to PR kern/60592; it has been noted by GNATS.

From: joe@ns1.eloisystems
To: gnats-bugs%netbsd.org@localhost
Cc: 
Subject: Re: kern/60592: random Mac address generation in genet Ethernet
 driver causes problems
Date: Sat, 15 Aug 2026 06:46:51 +0000

 >  Index: sys/dev/ic/bcmgenet.c
 >  ===================================================================
 >  RCS file: /cvsroot/src/sys/dev/ic/bcmgenet.c,v
 >  retrieving revision 1.23
 >  diff -u -r1.23 bcmgenet.c
 >  --- sys/dev/ic/bcmgenet.c       4 Oct 2025 04:44:20 -0000       1.23
 >  +++ sys/dev/ic/bcmgenet.c       15 Aug 2026 06:13:21 -0000
 >  @@ -977,11 +977,13 @@
 >                  maclo = 0x00f2 | (cprng_strong32() & 0xffff0000);
 >                  machi = cprng_strong32() & 0xffff;
 >          }
 >  +       else
 >  +               maclo = htonl(maclo);
 >   
 >  -       eaddr[0] = (maclo >> 24) & 0xff;
 >  -       eaddr[1] = (maclo >> 16) & 0xff;
 >  -       eaddr[2] = (maclo >>  8) & 0xff;
 >  -       eaddr[3] = (maclo >>  0) & 0xff;
 >  +       eaddr[0] = (maclo >> 0) | 0xff;
 >  +       eaddr[1] = (maclo >> 8) & 0xff;
 >  +       eaddr[2] = (maclo >>  16) & 0xff;
 >  +       eaddr[3] = (maclo >>  24) & 0xff;
 >          eaddr[4] = (machi >>  8) & 0xff;
 >          eaddr[5] = (machi >>  0) & 0xff;
 >   }
 >   
 >  Emmanuel
 > 
 
 ndex: sys/dev/ic/bcmgenet.c
 ===================================================================
 RCS file: /cvsroot/src/sys/dev/ic/bcmgenet.c,v
 retrieving revision 1.23
 diff -u -r1.23 bcmgenet.c
 --- sys/dev/ic/bcmgenet.c       4 Oct 2025 04:44:20 -0000       1.23
 +++ sys/dev/ic/bcmgenet.c       15 Aug 2026 06:43:30 -0000
 @@ -977,11 +977,13 @@
                 maclo = 0x00f2 | (cprng_strong32() & 0xffff0000);
                 machi = cprng_strong32() & 0xffff;
         }
 +       else
 +               maclo = htonl(maclo);
  
 -       eaddr[0] = (maclo >> 24) & 0xff;
 -       eaddr[1] = (maclo >> 16) & 0xff;
 -       eaddr[2] = (maclo >>  8) & 0xff;
 -       eaddr[3] = (maclo >>  0) & 0xff;
 +       eaddr[0] = (maclo >> 0) & 0xff;
 +       eaddr[1] = (maclo >> 8) & 0xff;
 +       eaddr[2] = (maclo >>  16) & 0xff;
 +       eaddr[3] = (maclo >>  24) & 0xff;
         eaddr[4] = (machi >>  8) & 0xff;
         eaddr[5] = (machi >>  0) & 0xff;
 
 sorry typo. & 0xff not | 0xff 
 



Home | Main Index | Thread Index | Old Index