Mercurial > ecos
diff packages/io/eth/current/src/net/eth_drv.c @ 251:c8e3659acd62
Fix from Red Hat: reconfigure multicast addresses if present on startup.
| author | gthomas |
|---|---|
| date | Fri, 26 Jul 2002 15:00:51 +0000 |
| parents | d2c90368aeef |
| children | 1eb79d208648 |
line wrap: on
line diff
--- 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;
