cvs commit: src/sys/dev/netif/acx if_acx.c src/sys/dev/netif/ipw if_ipw.c src/sys/dev/netif/ral rt2560.c rt2661.c src/sys/dev/netif/rum if_rum.c src/sys/netproto/802_11 ieee80211_dragonfly.h src/sys/netproto/802_11/wlan ieee80211_dragonfly.c ...
Sascha Wildner
swildner at crater.dragonflybsd.org
Tue Jan 2 15:31:29 PST 2007
swildner 2007/01/02 15:28:49 PST
DragonFly src repository
Modified files:
sys/dev/netif/acx if_acx.c
sys/dev/netif/ipw if_ipw.c
sys/dev/netif/ral rt2560.c rt2661.c
sys/dev/netif/rum if_rum.c
sys/netproto/802_11 ieee80211_dragonfly.h
sys/netproto/802_11/wlan ieee80211_dragonfly.c
ieee80211_proto.c
Log:
[committed on behalf of sephe]
- Fix ieee80211_node leakage. The leakage is caused by calling IF_DRAIN()
on management ifqueue whose mbuf's m_pkthdr.rcvif has special meaning:
it holds ieee80211_node to which the management frame should be sent and
the node has its reference count bumped.
Add a new function ieee80211_drain_mgtq(), which frees ieee80211_node
pointed by mbuf's m_pkthdr.rcvif before freeing the mbuf. Use this function
to drain management ifqueue instead of IF_DRAIN().
- In acx(4), ipw(4), ral(4) and rum(4) 'stop' routines, move
ieee80211_new_state(IEEE80211_S_INIT) before clearing IFF_RUNNING in
ifnet.if_flags, so these drivers may send out management frames injected
by ieee80211_newstate(IEEE80211_S_INIT). (*)
# (*) Without proper hardware TX queue drain functionality, the management
# frames injected by ieee80211_newstate(IEEE80211_S_INIT) almost no
# chance to float in the air.
Revision Changes Path
1.15 +2 -1 src/sys/dev/netif/acx/if_acx.c
1.19 +2 -2 src/sys/dev/netif/ipw/if_ipw.c
1.8 +2 -2 src/sys/dev/netif/ral/rt2560.c
1.10 +2 -2 src/sys/dev/netif/ral/rt2661.c
1.4 +6 -7 src/sys/dev/netif/rum/if_rum.c
1.2 +1 -0 src/sys/netproto/802_11/ieee80211_dragonfly.h
1.9 +20 -0 src/sys/netproto/802_11/wlan/ieee80211_dragonfly.c
1.9 +16 -8 src/sys/netproto/802_11/wlan/ieee80211_proto.c
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/acx/if_acx.c.diff?r1=1.14&r2=1.15&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/ipw/if_ipw.c.diff?r1=1.18&r2=1.19&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/ral/rt2560.c.diff?r1=1.7&r2=1.8&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/ral/rt2661.c.diff?r1=1.9&r2=1.10&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/rum/if_rum.c.diff?r1=1.3&r2=1.4&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netproto/802_11/ieee80211_dragonfly.h.diff?r1=1.1&r2=1.2&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netproto/802_11/wlan/ieee80211_dragonfly.c.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netproto/802_11/wlan/ieee80211_proto.c.diff?r1=1.8&r2=1.9&f=u
More information about the Commits
mailing list