diff options
author | David S. Miller <davem@davemloft.net> | 2008-07-14 23:40:34 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-07-14 23:40:34 -0400 |
commit | fc943b12e48f9341bce48c2fadf094cc721aab93 (patch) | |
tree | 8c3244d7f5fae4edbfe0a5103789b0bc5c64f478 /drivers/net/wireless/zd1211rw | |
parent | 72d9794f444734af56ef12833b496326643e2964 (diff) | |
parent | 4c9adafff7d910f142fe44fae37ed12c6b99f20f (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6
Diffstat (limited to 'drivers/net/wireless/zd1211rw')
-rw-r--r-- | drivers/net/wireless/zd1211rw/zd_mac.c | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/drivers/net/wireless/zd1211rw/zd_mac.c b/drivers/net/wireless/zd1211rw/zd_mac.c index feaf43d17249..fcc532bb6a7e 100644 --- a/drivers/net/wireless/zd1211rw/zd_mac.c +++ b/drivers/net/wireless/zd1211rw/zd_mac.c | |||
@@ -728,15 +728,19 @@ static int zd_op_config_interface(struct ieee80211_hw *hw, | |||
728 | if (mac->type == IEEE80211_IF_TYPE_MESH_POINT || | 728 | if (mac->type == IEEE80211_IF_TYPE_MESH_POINT || |
729 | mac->type == IEEE80211_IF_TYPE_IBSS) { | 729 | mac->type == IEEE80211_IF_TYPE_IBSS) { |
730 | associated = true; | 730 | associated = true; |
731 | if (conf->beacon) { | 731 | if (conf->changed & IEEE80211_IFCC_BEACON) { |
732 | r = zd_mac_config_beacon(hw, conf->beacon); | 732 | struct sk_buff *beacon = ieee80211_beacon_get(hw, vif); |
733 | |||
734 | if (!beacon) | ||
735 | return -ENOMEM; | ||
736 | r = zd_mac_config_beacon(hw, beacon); | ||
733 | if (r < 0) | 737 | if (r < 0) |
734 | return r; | 738 | return r; |
735 | r = zd_set_beacon_interval(&mac->chip, BCN_MODE_IBSS | | 739 | r = zd_set_beacon_interval(&mac->chip, BCN_MODE_IBSS | |
736 | hw->conf.beacon_int); | 740 | hw->conf.beacon_int); |
737 | if (r < 0) | 741 | if (r < 0) |
738 | return r; | 742 | return r; |
739 | kfree_skb(conf->beacon); | 743 | kfree_skb(beacon); |
740 | } | 744 | } |
741 | } else | 745 | } else |
742 | associated = is_valid_ether_addr(conf->bssid); | 746 | associated = is_valid_ether_addr(conf->bssid); |
@@ -890,17 +894,6 @@ static void zd_op_bss_info_changed(struct ieee80211_hw *hw, | |||
890 | } | 894 | } |
891 | } | 895 | } |
892 | 896 | ||
893 | static int zd_op_beacon_update(struct ieee80211_hw *hw, | ||
894 | struct sk_buff *skb) | ||
895 | { | ||
896 | struct zd_mac *mac = zd_hw_mac(hw); | ||
897 | zd_mac_config_beacon(hw, skb); | ||
898 | kfree_skb(skb); | ||
899 | zd_set_beacon_interval(&mac->chip, BCN_MODE_IBSS | | ||
900 | hw->conf.beacon_int); | ||
901 | return 0; | ||
902 | } | ||
903 | |||
904 | static const struct ieee80211_ops zd_ops = { | 897 | static const struct ieee80211_ops zd_ops = { |
905 | .tx = zd_op_tx, | 898 | .tx = zd_op_tx, |
906 | .start = zd_op_start, | 899 | .start = zd_op_start, |
@@ -911,7 +904,6 @@ static const struct ieee80211_ops zd_ops = { | |||
911 | .config_interface = zd_op_config_interface, | 904 | .config_interface = zd_op_config_interface, |
912 | .configure_filter = zd_op_configure_filter, | 905 | .configure_filter = zd_op_configure_filter, |
913 | .bss_info_changed = zd_op_bss_info_changed, | 906 | .bss_info_changed = zd_op_bss_info_changed, |
914 | .beacon_update = zd_op_beacon_update, | ||
915 | }; | 907 | }; |
916 | 908 | ||
917 | struct ieee80211_hw *zd_mac_alloc_hw(struct usb_interface *intf) | 909 | struct ieee80211_hw *zd_mac_alloc_hw(struct usb_interface *intf) |