Skip to content

Commit

Permalink
zd1211rw: honour enable_beacon conf
Browse files Browse the repository at this point in the history
This makes zd1211rw honour enable_beacon, as well as fixing
a memory leak: the beacon skb is leaked when configuring it
to the hardware fails.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Johannes Berg authored and John W. Linville committed Feb 13, 2009
1 parent 5e13336 commit a472780
Showing 1 changed file with 13 additions and 3 deletions.
16 changes: 13 additions & 3 deletions drivers/net/wireless/zd1211rw/zd_mac.c
Original file line number Diff line number Diff line change
Expand Up @@ -768,13 +768,23 @@ static int zd_op_config_interface(struct ieee80211_hw *hw,
if (!beacon)
return -ENOMEM;
r = zd_mac_config_beacon(hw, beacon);
kfree_skb(beacon);

if (r < 0)
return r;
r = zd_set_beacon_interval(&mac->chip, BCN_MODE_IBSS |
hw->conf.beacon_int);
}

if (conf->changed & IEEE80211_IFCC_BEACON_ENABLED) {
u32 interval;

if (conf->enable_beacon)
interval = BCN_MODE_IBSS | hw->conf.beacon_int;
else
interval = 0;

r = zd_set_beacon_interval(&mac->chip, interval);
if (r < 0)
return r;
kfree_skb(beacon);
}
} else
associated = is_valid_ether_addr(conf->bssid);
Expand Down

0 comments on commit a472780

Please sign in to comment.