cvs commit: src/sys/dev/netif/sf if_sf.c
Sepherosa Ziehau
sepherosa at gmail.com
Sun Jun 12 16:20:32 PDT 2005
static int sf_detach(dev)
device_t dev;
{
- struct sf_softc *sc;
- struct ifnet *ifp;
- int s;
-
- s = splimp();
+ struct sf_softc *sc = device_get_softc(dev);
+ struct ifnet *ifp = &sc->arpcom.ac_if;
- sc = device_get_softc(dev);
- ifp = &sc->arpcom.ac_if;
+ crit_enter();
- ether_ifdetach(ifp);
- sf_stop(sc);
+ if (device_is_attached(dev)) {
+ ether_ifdetach(ifp);
+ sf_stop(sc);
Should we call sf_stop() before ether_ifattach()?
+ }
- bus_generic_detach(dev);
device_delete_child(dev, sc->sf_miibus);
device_delete_child() here should be called based on (sc->sf_miibus != NULL)
+ bus_generic_detach(dev);
Best Regards,
sephe
On 6/13/05, Joerg Sonnenberger <joerg at xxxxxxxxxxxxxxxxxxxxxxx> wrote:
> joerg 2005/06/12 10:29:49 PDT
>
> DragonFly src repository
>
> Modified files:
> sys/dev/netif/sf if_sf.c
> Log:
> - convert to critical sections
> - setup interrupt last, no need to protect attach against races
> - use M_WAITOK for contigmalloc
> - use sf_detach for common error handling
>
> Revision Changes Path
> 1.20 +53 -69 src/sys/dev/netif/sf/if_sf.c
>
>
> http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/sf/if_sf.c.diff?r1=1.19&r2=1.20&f=u
>
--
Live Free or Die
More information about the Commits
mailing list