aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/zd1211rw
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/zd1211rw')
-rw-r--r--drivers/net/wireless/zd1211rw/zd_mac.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/drivers/net/wireless/zd1211rw/zd_mac.c b/drivers/net/wireless/zd1211rw/zd_mac.c
index 732b69f40978..7579af27edbd 100644
--- a/drivers/net/wireless/zd1211rw/zd_mac.c
+++ b/drivers/net/wireless/zd1211rw/zd_mac.c
@@ -768,13 +768,23 @@ static int zd_op_config_interface(struct ieee80211_hw *hw,
768 if (!beacon) 768 if (!beacon)
769 return -ENOMEM; 769 return -ENOMEM;
770 r = zd_mac_config_beacon(hw, beacon); 770 r = zd_mac_config_beacon(hw, beacon);
771 kfree_skb(beacon);
772
771 if (r < 0) 773 if (r < 0)
772 return r; 774 return r;
773 r = zd_set_beacon_interval(&mac->chip, BCN_MODE_IBSS | 775 }
774 hw->conf.beacon_int); 776
777 if (conf->changed & IEEE80211_IFCC_BEACON_ENABLED) {
778 u32 interval;
779
780 if (conf->enable_beacon)
781 interval = BCN_MODE_IBSS | hw->conf.beacon_int;
782 else
783 interval = 0;
784
785 r = zd_set_beacon_interval(&mac->chip, interval);
775 if (r < 0) 786 if (r < 0)
776 return r; 787 return r;
777 kfree_skb(beacon);
778 } 788 }
779 } else 789 } else
780 associated = is_valid_ether_addr(conf->bssid); 790 associated = is_valid_ether_addr(conf->bssid);