diff options
| author | David S. Miller <davem@davemloft.net> | 2015-02-28 23:33:53 -0500 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2015-02-28 23:33:53 -0500 |
| commit | 32034e0580a9cd8cebd303ced20f54c06cb24f4d (patch) | |
| tree | ec0076ab74f5b46413851897a4ded6d1f51a7ba5 /net | |
| parent | 06615bed60c1fb7c37adddb75bdc80da873b5edb (diff) | |
| parent | 9c1c98a3bb7b7593b60264b9a07e001e68b46697 (diff) | |
Merge tag 'mac80211-for-davem-2015-02-27' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211
Johannes Berg says:
====================
A few patches have accumulated, among them the fix for Linus's
four-way-handshake problem. The others are various small fixes
for problems all over, nothing really stands out.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
| -rw-r--r-- | net/mac80211/chan.c | 5 | ||||
| -rw-r--r-- | net/mac80211/rc80211_minstrel.c | 2 | ||||
| -rw-r--r-- | net/mac80211/tx.c | 1 | ||||
| -rw-r--r-- | net/wireless/core.c | 1 | ||||
| -rw-r--r-- | net/wireless/nl80211.c | 12 | ||||
| -rw-r--r-- | net/wireless/reg.c | 2 |
6 files changed, 14 insertions, 9 deletions
diff --git a/net/mac80211/chan.c b/net/mac80211/chan.c index ff0d2db09df9..5bcd4e5589d3 100644 --- a/net/mac80211/chan.c +++ b/net/mac80211/chan.c | |||
| @@ -1508,6 +1508,8 @@ static void __ieee80211_vif_release_channel(struct ieee80211_sub_if_data *sdata) | |||
| 1508 | if (ieee80211_chanctx_refcount(local, ctx) == 0) | 1508 | if (ieee80211_chanctx_refcount(local, ctx) == 0) |
| 1509 | ieee80211_free_chanctx(local, ctx); | 1509 | ieee80211_free_chanctx(local, ctx); |
| 1510 | 1510 | ||
| 1511 | sdata->radar_required = false; | ||
| 1512 | |||
| 1511 | /* Unreserving may ready an in-place reservation. */ | 1513 | /* Unreserving may ready an in-place reservation. */ |
| 1512 | if (use_reserved_switch) | 1514 | if (use_reserved_switch) |
| 1513 | ieee80211_vif_use_reserved_switch(local); | 1515 | ieee80211_vif_use_reserved_switch(local); |
| @@ -1566,6 +1568,9 @@ int ieee80211_vif_use_channel(struct ieee80211_sub_if_data *sdata, | |||
| 1566 | ieee80211_recalc_smps_chanctx(local, ctx); | 1568 | ieee80211_recalc_smps_chanctx(local, ctx); |
| 1567 | ieee80211_recalc_radar_chanctx(local, ctx); | 1569 | ieee80211_recalc_radar_chanctx(local, ctx); |
| 1568 | out: | 1570 | out: |
| 1571 | if (ret) | ||
| 1572 | sdata->radar_required = false; | ||
| 1573 | |||
| 1569 | mutex_unlock(&local->chanctx_mtx); | 1574 | mutex_unlock(&local->chanctx_mtx); |
| 1570 | return ret; | 1575 | return ret; |
| 1571 | } | 1576 | } |
diff --git a/net/mac80211/rc80211_minstrel.c b/net/mac80211/rc80211_minstrel.c index 7c86a002df95..ef6e8a6c4253 100644 --- a/net/mac80211/rc80211_minstrel.c +++ b/net/mac80211/rc80211_minstrel.c | |||
| @@ -373,7 +373,7 @@ minstrel_get_rate(void *priv, struct ieee80211_sta *sta, | |||
| 373 | rate++; | 373 | rate++; |
| 374 | mi->sample_deferred++; | 374 | mi->sample_deferred++; |
| 375 | } else { | 375 | } else { |
| 376 | if (!msr->sample_limit != 0) | 376 | if (!msr->sample_limit) |
| 377 | return; | 377 | return; |
| 378 | 378 | ||
| 379 | mi->sample_packets++; | 379 | mi->sample_packets++; |
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 88a18ffe2975..07bd8db00af8 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c | |||
| @@ -566,6 +566,7 @@ ieee80211_tx_h_check_control_port_protocol(struct ieee80211_tx_data *tx) | |||
| 566 | if (tx->sdata->control_port_no_encrypt) | 566 | if (tx->sdata->control_port_no_encrypt) |
| 567 | info->flags |= IEEE80211_TX_INTFL_DONT_ENCRYPT; | 567 | info->flags |= IEEE80211_TX_INTFL_DONT_ENCRYPT; |
| 568 | info->control.flags |= IEEE80211_TX_CTRL_PORT_CTRL_PROTO; | 568 | info->control.flags |= IEEE80211_TX_CTRL_PORT_CTRL_PROTO; |
| 569 | info->flags |= IEEE80211_TX_CTL_USE_MINRATE; | ||
| 569 | } | 570 | } |
| 570 | 571 | ||
| 571 | return TX_CONTINUE; | 572 | return TX_CONTINUE; |
diff --git a/net/wireless/core.c b/net/wireless/core.c index 3af0ecf1cc16..2a0bbd22854b 100644 --- a/net/wireless/core.c +++ b/net/wireless/core.c | |||
| @@ -1199,6 +1199,7 @@ out_fail_wq: | |||
| 1199 | regulatory_exit(); | 1199 | regulatory_exit(); |
| 1200 | out_fail_reg: | 1200 | out_fail_reg: |
| 1201 | debugfs_remove(ieee80211_debugfs_dir); | 1201 | debugfs_remove(ieee80211_debugfs_dir); |
| 1202 | nl80211_exit(); | ||
| 1202 | out_fail_nl80211: | 1203 | out_fail_nl80211: |
| 1203 | unregister_netdevice_notifier(&cfg80211_netdev_notifier); | 1204 | unregister_netdevice_notifier(&cfg80211_netdev_notifier); |
| 1204 | out_fail_notifier: | 1205 | out_fail_notifier: |
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index d78fd8b54515..be2501538011 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c | |||
| @@ -2654,10 +2654,6 @@ static int nl80211_new_interface(struct sk_buff *skb, struct genl_info *info) | |||
| 2654 | return err; | 2654 | return err; |
| 2655 | } | 2655 | } |
| 2656 | 2656 | ||
| 2657 | msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL); | ||
| 2658 | if (!msg) | ||
| 2659 | return -ENOMEM; | ||
| 2660 | |||
| 2661 | err = parse_monitor_flags(type == NL80211_IFTYPE_MONITOR ? | 2657 | err = parse_monitor_flags(type == NL80211_IFTYPE_MONITOR ? |
| 2662 | info->attrs[NL80211_ATTR_MNTR_FLAGS] : NULL, | 2658 | info->attrs[NL80211_ATTR_MNTR_FLAGS] : NULL, |
| 2663 | &flags); | 2659 | &flags); |
| @@ -2666,6 +2662,10 @@ static int nl80211_new_interface(struct sk_buff *skb, struct genl_info *info) | |||
| 2666 | !(rdev->wiphy.features & NL80211_FEATURE_ACTIVE_MONITOR)) | 2662 | !(rdev->wiphy.features & NL80211_FEATURE_ACTIVE_MONITOR)) |
| 2667 | return -EOPNOTSUPP; | 2663 | return -EOPNOTSUPP; |
| 2668 | 2664 | ||
| 2665 | msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL); | ||
| 2666 | if (!msg) | ||
| 2667 | return -ENOMEM; | ||
| 2668 | |||
| 2669 | wdev = rdev_add_virtual_intf(rdev, | 2669 | wdev = rdev_add_virtual_intf(rdev, |
| 2670 | nla_data(info->attrs[NL80211_ATTR_IFNAME]), | 2670 | nla_data(info->attrs[NL80211_ATTR_IFNAME]), |
| 2671 | type, err ? NULL : &flags, ¶ms); | 2671 | type, err ? NULL : &flags, ¶ms); |
| @@ -12528,9 +12528,7 @@ static int cfg80211_net_detect_results(struct sk_buff *msg, | |||
| 12528 | } | 12528 | } |
| 12529 | 12529 | ||
| 12530 | for (j = 0; j < match->n_channels; j++) { | 12530 | for (j = 0; j < match->n_channels; j++) { |
| 12531 | if (nla_put_u32(msg, | 12531 | if (nla_put_u32(msg, j, match->channels[j])) { |
| 12532 | NL80211_ATTR_WIPHY_FREQ, | ||
| 12533 | match->channels[j])) { | ||
| 12534 | nla_nest_cancel(msg, nl_freqs); | 12532 | nla_nest_cancel(msg, nl_freqs); |
| 12535 | nla_nest_cancel(msg, nl_match); | 12533 | nla_nest_cancel(msg, nl_match); |
| 12536 | goto out; | 12534 | goto out; |
diff --git a/net/wireless/reg.c b/net/wireless/reg.c index b586d0dcb09e..48dfc7b4e981 100644 --- a/net/wireless/reg.c +++ b/net/wireless/reg.c | |||
| @@ -228,7 +228,7 @@ static DECLARE_DELAYED_WORK(reg_timeout, reg_timeout_work); | |||
| 228 | 228 | ||
| 229 | /* We keep a static world regulatory domain in case of the absence of CRDA */ | 229 | /* We keep a static world regulatory domain in case of the absence of CRDA */ |
| 230 | static const struct ieee80211_regdomain world_regdom = { | 230 | static const struct ieee80211_regdomain world_regdom = { |
| 231 | .n_reg_rules = 6, | 231 | .n_reg_rules = 8, |
| 232 | .alpha2 = "00", | 232 | .alpha2 = "00", |
| 233 | .reg_rules = { | 233 | .reg_rules = { |
| 234 | /* IEEE 802.11b/g, channels 1..11 */ | 234 | /* IEEE 802.11b/g, channels 1..11 */ |
