# HG changeset patch # User gthomas # Date 1027695651 0 # Node ID c8e3659acd627306e8f65020ccfcd8460360a04e # Parent 6100a026a5e088c3f42c1a63b3c07125ae9da275 Fix from Red Hat: reconfigure multicast addresses if present on startup. diff --git a/packages/io/eth/current/ChangeLog b/packages/io/eth/current/ChangeLog --- a/packages/io/eth/current/ChangeLog +++ b/packages/io/eth/current/ChangeLog @@ -1,3 +1,9 @@ +2002-07-26 Gary Thomas +2002-07-26 Ken Cox + + * src/net/eth_drv.c (eth_drv_start): Force multicast address + setup any time chip is reset/reconfigured. + 2002-05-30 Jonathan Larmour * cdl/eth_drivers.cdl: Provide CYGINT_IO_ETH_INT_SUPPORT_REQUIRED diff --git a/packages/io/eth/current/src/net/eth_drv.c b/packages/io/eth/current/src/net/eth_drv.c --- a/packages/io/eth/current/src/net/eth_drv.c +++ b/packages/io/eth/current/src/net/eth_drv.c @@ -410,8 +410,15 @@ static void eth_drv_start(struct eth_drv_sc *sc) { struct ifnet *ifp = &sc->sc_arpcom.ac_if; + int s; // Perform any hardware initialization (sc->funs->start)(sc, (unsigned char *)&sc->sc_arpcom.ac_enaddr, 0); + // resend multicast addresses if present + if(ifp->if_multiaddrs.lh_first && ifp->if_ioctl) { + s = splimp(); + ifp->if_ioctl(ifp, SIOCADDMULTI, 0); + splx(s); + } // Set 'running' flag, and clear output active flag. ifp->if_flags |= IFF_RUNNING; ifp->if_flags &= ~IFF_OACTIVE;