diff options
author | Brian Cavagnolo <brian@cozybit.com> | 2009-01-16 19:04:49 -0800 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-01-22 13:55:00 -0500 |
commit | 5dc306f3bd1d4cfdf79df39221b3036eab1ddcf3 (patch) | |
tree | 321bf9aa946024bdb171a9b1180dc0f73158dcba /net | |
parent | 6d317482944250228255bcbe97a95b7e7ad9a538 (diff) | |
download | op-kernel-dev-5dc306f3bd1d4cfdf79df39221b3036eab1ddcf3.zip op-kernel-dev-5dc306f3bd1d4cfdf79df39221b3036eab1ddcf3.tar.gz |
mac80211: decrement ref count to netdev after launching mesh discovery
After launching mesh discovery in tx path, reference count was not being
decremented. This was preventing module unload.
Signed-off-by: Brian Cavagnolo <brian@cozybit.com>
Signed-off-by: Andrey Yurovsky <andrey@cozybit.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/mac80211/tx.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index a4af3a124..4278e54 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c @@ -1307,8 +1307,10 @@ int ieee80211_master_start_xmit(struct sk_buff *skb, struct net_device *dev) if (is_multicast_ether_addr(hdr->addr3)) memcpy(hdr->addr1, hdr->addr3, ETH_ALEN); else - if (mesh_nexthop_lookup(skb, osdata)) - return 0; + if (mesh_nexthop_lookup(skb, osdata)) { + dev_put(odev); + return 0; + } if (memcmp(odev->dev_addr, hdr->addr4, ETH_ALEN) != 0) IEEE80211_IFSTA_MESH_CTR_INC(&osdata->u.mesh, fwded_frames); |