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

From: Jacek Zapala <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Cc:  
Subject: Re: kern/117456: ipv6 neighbour discovery / bce multicast problem
Date: Mon, 29 Oct 2007 10:50:18 +0100

 --=-OnEZhZq5git3EvQIW/zR
 Content-Type: text/plain
 Content-Transfer-Encoding: 7bit
 
 I have found the bug in the bce driver. Patch attached.
 
 -- 
        Jacek
 
 
 --=-OnEZhZq5git3EvQIW/zR
 Content-Disposition: attachment; filename=bce_multicast_patch.diff
 Content-Type: text/x-patch; name=bce_multicast_patch.diff; charset=ISO-8859-2
 Content-Transfer-Encoding: 7bit
 
 --- dev/bce/if_bce.c.old       Sun Oct 28 02:35:08 2007
 +++ dev/bce/if_bce.c   Mon Oct 29 10:27:22 2007
 @@ -5209,10 +5209,12 @@
  {
        struct ifnet *ifp;
        struct ifmultiaddr *ifma;
 -      u32 hashes[4] = { 0, 0, 0, 0 };
 +      u32 hashes[NUM_MC_HASH_REGISTERS];
        u32 rx_mode, sort_mode;
        int h, i;
  
 +      memset(hashes, 0, 4 * NUM_MC_HASH_REGISTERS);
 +
        BCE_LOCK_ASSERT(sc);
  
        ifp = sc->bce_ifp;
 @@ -5257,12 +5259,12 @@
                        if (ifma->ifma_addr->sa_family != AF_LINK)
                                continue;
                        h = ether_crc32_le(LLADDR((struct sockaddr_dl *)
 -                      ifma->ifma_addr), ETHER_ADDR_LEN) & 0x7F;
 -                      hashes[(h & 0x60) >> 5] |= 1 << (h & 0x1F);
 +                      ifma->ifma_addr), ETHER_ADDR_LEN) & 0xFF;
 +                      hashes[(h & 0xe0) >> 5] |= 1 << (h & 0x1F);
                }
                IF_ADDR_UNLOCK(ifp);
  
 -              for (i = 0; i < 4; i++)
 +              for (i = 0; i < NUM_MC_HASH_REGISTERS; i++)
                        REG_WR(sc, BCE_EMAC_MULTICAST_HASH0 + (i * 4), 
hashes[i]);
  
                sort_mode |= BCE_RPM_SORT_USER0_MC_HSH_EN;
 
 --=-OnEZhZq5git3EvQIW/zR--
 
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to