cvs commit: src/sys/dev/netif/an if_an.c src/sys/dev/netif/awi if_awi_pccard.c src/sys/dev/netif/bfe if_bfe.c src/sys/dev/netif/bge if_bge.c src/sys/dev/netif/cm if_cm_isa.c src/sys/dev/netif/cs if_cs.c src/sys/dev/netif/dc if_dc.c ...
Sepherosa Ziehau
sephe at crater.dragonflybsd.org
Sat Dec 31 06:13:07 PST 2005
sephe 2005/12/31 06:08:01 PST
DragonFly src repository
Modified files:
sys/dev/netif/an if_an.c
sys/dev/netif/awi if_awi_pccard.c
sys/dev/netif/bfe if_bfe.c
sys/dev/netif/bge if_bge.c
sys/dev/netif/cm if_cm_isa.c
sys/dev/netif/cs if_cs.c
sys/dev/netif/dc if_dc.c
sys/dev/netif/ed if_ed_isa.c if_ed_pccard.c if_ed_pci.c
sys/dev/netif/em if_em.c
sys/dev/netif/ep if_ep_pccard.c
sys/dev/netif/ex if_ex_pccard.c
sys/dev/netif/fe if_fe_pccard.c
sys/dev/netif/fwe if_fwe.c
sys/dev/netif/fxp if_fxp.c
sys/dev/netif/gx if_gx.c
sys/dev/netif/ipw if_ipw.c
sys/dev/netif/iwi if_iwi.c
sys/dev/netif/lge if_lge.c
sys/dev/netif/lnc if_lnc_isa.c if_lnc_pci.c
sys/dev/netif/my if_my.c
sys/dev/netif/ndis if_ndis.c
sys/dev/netif/nge if_nge.c
sys/dev/netif/nv if_nv.c
sys/dev/netif/owi if_owi.c
sys/dev/netif/pcn if_pcn.c
sys/dev/netif/ray if_ray.c
sys/dev/netif/re if_re.c
sys/dev/netif/rl if_rl.c
sys/dev/netif/sbsh if_sbsh.c
sys/dev/netif/sf if_sf.c
sys/dev/netif/sis if_sis.c
sys/dev/netif/sk if_sk.c
sys/dev/netif/sn if_sn.c if_sn_pccard.c
sys/dev/netif/ste if_ste.c
sys/dev/netif/ti if_ti.c
sys/dev/netif/tl if_tl.c
sys/dev/netif/tx if_tx.c
sys/dev/netif/txp if_txp.c
sys/dev/netif/vr if_vr.c
sys/dev/netif/wb if_wb.c
sys/dev/netif/wi if_wi.c
sys/dev/netif/wl if_wl.c
sys/dev/netif/xe if_xe.c
sys/dev/netif/xl if_xl.c
Log:
{ether,ieee80211}_ifdetach() can't be called with serializer being held, since
they will go through code which tries to hold serializer again, e.g.
ether_ifdetach() -> if_detach() -> in_control()
So in various NICs' xxx_detach():
- Move bus_teardown_intr() under "(device_is_attached())", whenever it is
applicable. Since it is not possible that intrhandle is NULL here, nuke
original "(intrhandle != NULL)". This can:
1) Avoid holding serializer, if xxx_attach() fails
2) Release serializer ASAP
3) Ease following tasks
- Hold serializer only for xxx_stop()(or similar functions which stops NIC) and
bus_teardown_intr()
- Call {ether,ieee80211}_ifdetach() after serializer is released
Other stuffs:
- Serialize xxx_detach() for awi(4), ep(4), sn(4) and xe(4)
- Release serializer before returning from {ed_pccard,ray}_detach()
- Make ipw(4)'s ipw_detach() suitable for error handling, adjust ipw_attach()
accordingly
- Fix a bug in ex_pccard_detach(): instead of if_detach(), ether_ifdetach()
should be used here
- For ndis(4), "ifp->serializer" ==> "ifp->if_serializer"
Reported-by: esmith <esmith at xxxxxxxxxxxx>
Discussed-with: dillon and joerg
Partially-Reviewed-by: dillon and joerg
Reported-by: Steve Mynott <steve.mynott at xxxxxxxxx> and me
Revision Changes Path
1.36 +3 -2 src/sys/dev/netif/an/if_an.c
1.15 +5 -1 src/sys/dev/netif/awi/if_awi_pccard.c
1.28 +6 -7 src/sys/dev/netif/bfe/if_bfe.c
1.52 +5 -9 src/sys/dev/netif/bge/if_bge.c
1.14 +3 -2 src/sys/dev/netif/cm/if_cm_isa.c
1.24 +4 -5 src/sys/dev/netif/cs/if_cs.c
1.49 +5 -7 src/sys/dev/netif/dc/if_dc.c
1.14 +6 -2 src/sys/dev/netif/ed/if_ed_isa.c
1.15 +6 -2 src/sys/dev/netif/ed/if_ed_pccard.c
1.11 +6 -2 src/sys/dev/netif/ed/if_ed_pci.c
1.46 +9 -9 src/sys/dev/netif/em/if_em.c
1.10 +9 -2 src/sys/dev/netif/ep/if_ep_pccard.c
1.11 +4 -3 src/sys/dev/netif/ex/if_ex_pccard.c
1.9 +3 -2 src/sys/dev/netif/fe/if_fe_pccard.c
1.24 +2 -1 src/sys/dev/netif/fwe/if_fwe.c
1.42 +7 -6 src/sys/dev/netif/fxp/if_fxp.c
1.23 +5 -7 src/sys/dev/netif/gx/if_gx.c
1.13 +17 -14 src/sys/dev/netif/ipw/if_ipw.c
1.10 +4 -5 src/sys/dev/netif/iwi/if_iwi.c
1.35 +4 -5 src/sys/dev/netif/lge/if_lge.c
1.8 +5 -7 src/sys/dev/netif/lnc/if_lnc_isa.c
1.9 +5 -7 src/sys/dev/netif/lnc/if_lnc_pci.c
1.24 +4 -6 src/sys/dev/netif/my/if_my.c
1.12 +10 -10 src/sys/dev/netif/ndis/if_ndis.c
1.36 +4 -6 src/sys/dev/netif/nge/if_nge.c
1.25 +11 -6 src/sys/dev/netif/nv/if_nv.c
1.15 +4 -4 src/sys/dev/netif/owi/if_owi.c
1.29 +4 -6 src/sys/dev/netif/pcn/if_pcn.c
1.27 +9 -6 src/sys/dev/netif/ray/if_ray.c
1.21 +6 -7 src/sys/dev/netif/re/if_re.c
1.30 +4 -7 src/sys/dev/netif/rl/if_rl.c
1.23 +6 -7 src/sys/dev/netif/sbsh/if_sbsh.c
1.27 +5 -7 src/sys/dev/netif/sf/if_sf.c
1.31 +4 -5 src/sys/dev/netif/sis/if_sis.c
1.42 +13 -6 src/sys/dev/netif/sk/if_sk.c
1.25 +0 -3 src/sys/dev/netif/sn/if_sn.c
1.7 +7 -1 src/sys/dev/netif/sn/if_sn_pccard.c
1.33 +7 -12 src/sys/dev/netif/ste/if_ste.c
1.40 +5 -8 src/sys/dev/netif/ti/if_ti.c
1.35 +4 -5 src/sys/dev/netif/tl/if_tl.c
1.34 +7 -12 src/sys/dev/netif/tx/if_tx.c
1.35 +5 -8 src/sys/dev/netif/txp/if_txp.c
1.41 +4 -6 src/sys/dev/netif/vr/if_vr.c
1.34 +5 -7 src/sys/dev/netif/wb/if_wb.c
1.34 +2 -4 src/sys/dev/netif/wi/if_wi.c
1.27 +4 -3 src/sys/dev/netif/wl/if_wl.c
1.31 +7 -5 src/sys/dev/netif/xe/if_xe.c
1.43 +4 -6 src/sys/dev/netif/xl/if_xl.c
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/an/if_an.c.diff?r1=1.35&r2=1.36&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/awi/if_awi_pccard.c.diff?r1=1.14&r2=1.15&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/bfe/if_bfe.c.diff?r1=1.27&r2=1.28&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/bge/if_bge.c.diff?r1=1.51&r2=1.52&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/cm/if_cm_isa.c.diff?r1=1.13&r2=1.14&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/cs/if_cs.c.diff?r1=1.23&r2=1.24&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/dc/if_dc.c.diff?r1=1.48&r2=1.49&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/ed/if_ed_isa.c.diff?r1=1.13&r2=1.14&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/ed/if_ed_pccard.c.diff?r1=1.14&r2=1.15&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/ed/if_ed_pci.c.diff?r1=1.10&r2=1.11&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/em/if_em.c.diff?r1=1.45&r2=1.46&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/ep/if_ep_pccard.c.diff?r1=1.9&r2=1.10&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/ex/if_ex_pccard.c.diff?r1=1.10&r2=1.11&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/fe/if_fe_pccard.c.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/fwe/if_fwe.c.diff?r1=1.23&r2=1.24&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/fxp/if_fxp.c.diff?r1=1.41&r2=1.42&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/gx/if_gx.c.diff?r1=1.22&r2=1.23&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/ipw/if_ipw.c.diff?r1=1.12&r2=1.13&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/iwi/if_iwi.c.diff?r1=1.9&r2=1.10&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/lge/if_lge.c.diff?r1=1.34&r2=1.35&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/lnc/if_lnc_isa.c.diff?r1=1.7&r2=1.8&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/lnc/if_lnc_pci.c.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/my/if_my.c.diff?r1=1.23&r2=1.24&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/ndis/if_ndis.c.diff?r1=1.11&r2=1.12&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/nge/if_nge.c.diff?r1=1.35&r2=1.36&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/nv/if_nv.c.diff?r1=1.24&r2=1.25&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/owi/if_owi.c.diff?r1=1.14&r2=1.15&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/pcn/if_pcn.c.diff?r1=1.28&r2=1.29&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/ray/if_ray.c.diff?r1=1.26&r2=1.27&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/re/if_re.c.diff?r1=1.20&r2=1.21&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/rl/if_rl.c.diff?r1=1.29&r2=1.30&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/sbsh/if_sbsh.c.diff?r1=1.22&r2=1.23&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/sf/if_sf.c.diff?r1=1.26&r2=1.27&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/sis/if_sis.c.diff?r1=1.30&r2=1.31&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/sk/if_sk.c.diff?r1=1.41&r2=1.42&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/sn/if_sn.c.diff?r1=1.24&r2=1.25&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/sn/if_sn_pccard.c.diff?r1=1.6&r2=1.7&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/ste/if_ste.c.diff?r1=1.32&r2=1.33&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/ti/if_ti.c.diff?r1=1.39&r2=1.40&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/tl/if_tl.c.diff?r1=1.34&r2=1.35&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/tx/if_tx.c.diff?r1=1.33&r2=1.34&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/txp/if_txp.c.diff?r1=1.34&r2=1.35&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/vr/if_vr.c.diff?r1=1.40&r2=1.41&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/wb/if_wb.c.diff?r1=1.33&r2=1.34&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/wi/if_wi.c.diff?r1=1.33&r2=1.34&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/wl/if_wl.c.diff?r1=1.26&r2=1.27&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/xe/if_xe.c.diff?r1=1.30&r2=1.31&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/xl/if_xl.c.diff?r1=1.42&r2=1.43&f=u
More information about the Commits
mailing list