mirror of https://gitee.com/openkylin/linux.git
A couple more fixes:
* don't try to authenticate during reconfiguration, which causes drivers to get confused * fix a kernel-doc warning for a recently merged change * fix MU-MIMO group configuration (relevant only for monitor mode) * more rate flags fix: remove stray RX_ENC_FLAG_40MHZ * fix IBSS probe response allocation size -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEExu3sM/nZ1eRSfR9Ha3t4Rpy0AB0FAlkQhDgACgkQa3t4Rpy0 AB07Pg/+MGBW/OFoxdsQtq7eGPzVuQXC4NCXjzBunueY/cTpExuzoOWvKTRA+p7o pxgqxhngO3l8u/FqhWE7jh+aGxydmq8BhQefrAMi6VgkH7oh4JwP6Mjxf4xGpxZk W15oNncNaxLiC4U+GaVUZ0oEsc0fCFuqsmAEGas25VOOQyr4NNJ9jivecOI70bHH b1wvCilwDAIeg7CKAtxja40/81ldnm9A7mSABGM6M13AJ1yiNnf9FEteSxAr7s4r xx6flFQQzlT+pzoVZeEg0u6yGWqucL/4V9OGcjJcoyLVnbey+1hlypLef4n+Cgol yP8yR5n1I3RWsJEsOftfVvjG54e/UAIR4xkGe+LHiWn7XjIK6EbCrmYt1uxknZU7 LTkFj6b4EHgGPRL0BrIRA4FpQdLeslbwsMF96gWP5VQJE3T4gocuTv4McG2g9Isl suiB1zn4Y24UuEHdg+mDlIiEuOr5h4+XvIBOHAw1ZfbVKSKBDLFbqvYF/sHbgsDF uR6CvMuGeRM2wOxD8QXFLueNGS7Znrd2ETVx2hx35/qAR/X54nu5kEqcsvjgEamY vPUr0RO/+plltQgiBBtTrr6x6uGJg1AsNEyrlMng5hP/mT3yLziU2G8qBozU5e7c mDA/7Lz7wk3a6MKVTzt8vaCIcpC42oVhvwS/6kKQ/BZ4GbajdBM= =FcxE -----END PGP SIGNATURE----- Merge tag 'mac80211-for-davem-2017-05-08' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211 Johannes Berg says: ==================== A couple more fixes: * don't try to authenticate during reconfiguration, which causes drivers to get confused * fix a kernel-doc warning for a recently merged change * fix MU-MIMO group configuration (relevant only for monitor mode) * more rate flags fix: remove stray RX_ENC_FLAG_40MHZ * fix IBSS probe response allocation size ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
29cee56c0b
|
@ -522,7 +522,7 @@ int ath9k_hw_process_rxdesc_edma(struct ath_hw *ah, struct ath_rx_status *rxs,
|
|||
rxs->rs_moreaggr = (rxsp->status11 & AR_RxMoreAggr) ? 1 : 0;
|
||||
rxs->rs_antenna = (MS(rxsp->status4, AR_RxAntenna) & 0x7);
|
||||
rxs->enc_flags |= (rxsp->status4 & AR_GI) ? RX_ENC_FLAG_SHORT_GI : 0;
|
||||
rxs->enc_flags |= (rxsp->status4 & AR_2040) ? RX_ENC_FLAG_40MHZ : 0;
|
||||
rxs->bw = (rxsp->status4 & AR_2040) ? RATE_INFO_BW_40 : RATE_INFO_BW_20;
|
||||
|
||||
rxs->evm0 = rxsp->status6;
|
||||
rxs->evm1 = rxsp->status7;
|
||||
|
|
|
@ -580,8 +580,8 @@ int ath9k_hw_rxprocdesc(struct ath_hw *ah, struct ath_desc *ds,
|
|||
/* directly mapped flags for ieee80211_rx_status */
|
||||
rs->enc_flags |=
|
||||
(ads.ds_rxstatus3 & AR_GI) ? RX_ENC_FLAG_SHORT_GI : 0;
|
||||
rs->enc_flags |=
|
||||
(ads.ds_rxstatus3 & AR_2040) ? RX_ENC_FLAG_40MHZ : 0;
|
||||
rs->bw = (ads.ds_rxstatus3 & AR_2040) ? RATE_INFO_BW_40 :
|
||||
RATE_INFO_BW_20;
|
||||
if (AR_SREV_9280_20_OR_LATER(ah))
|
||||
rs->enc_flags |=
|
||||
(ads.ds_rxstatus3 & AR_STBC) ?
|
||||
|
|
|
@ -734,7 +734,9 @@ il4965_hdl_rx(struct il_priv *il, struct il_rx_buf *rxb)
|
|||
if (rate_n_flags & RATE_MCS_HT_MSK)
|
||||
rx_status.encoding = RX_ENC_HT;
|
||||
if (rate_n_flags & RATE_MCS_HT40_MSK)
|
||||
rx_status.enc_flags |= RX_ENC_FLAG_40MHZ;
|
||||
rx_status.bw = RATE_INFO_BW_40;
|
||||
else
|
||||
rx_status.bw = RATE_INFO_BW_20;
|
||||
if (rate_n_flags & RATE_MCS_SGI_MSK)
|
||||
rx_status.enc_flags |= RX_ENC_FLAG_SHORT_GI;
|
||||
|
||||
|
|
|
@ -889,7 +889,9 @@ static void iwlagn_rx_reply_rx(struct iwl_priv *priv,
|
|||
if (rate_n_flags & RATE_MCS_HT_MSK)
|
||||
rx_status.encoding = RX_ENC_HT;
|
||||
if (rate_n_flags & RATE_MCS_HT40_MSK)
|
||||
rx_status.enc_flags |= RX_ENC_FLAG_40MHZ;
|
||||
rx_status.bw = RATE_INFO_BW_40;
|
||||
else
|
||||
rx_status.bw = RATE_INFO_BW_20;
|
||||
if (rate_n_flags & RATE_MCS_SGI_MSK)
|
||||
rx_status.enc_flags |= RX_ENC_FLAG_SHORT_GI;
|
||||
if (rate_n_flags & RATE_MCS_GF_MSK)
|
||||
|
|
|
@ -1201,7 +1201,13 @@ static bool mac80211_hwsim_tx_frame_no_nl(struct ieee80211_hw *hw,
|
|||
rx_status.encoding = RX_ENC_HT;
|
||||
}
|
||||
if (info->control.rates[0].flags & IEEE80211_TX_RC_40_MHZ_WIDTH)
|
||||
rx_status.enc_flags |= RX_ENC_FLAG_40MHZ;
|
||||
rx_status.bw = RATE_INFO_BW_40;
|
||||
else if (info->control.rates[0].flags & IEEE80211_TX_RC_80_MHZ_WIDTH)
|
||||
rx_status.bw = RATE_INFO_BW_80;
|
||||
else if (info->control.rates[0].flags & IEEE80211_TX_RC_160_MHZ_WIDTH)
|
||||
rx_status.bw = RATE_INFO_BW_160;
|
||||
else
|
||||
rx_status.bw = RATE_INFO_BW_20;
|
||||
if (info->control.rates[0].flags & IEEE80211_TX_RC_SHORT_GI)
|
||||
rx_status.enc_flags |= RX_ENC_FLAG_SHORT_GI;
|
||||
/* TODO: simulate real signal strength (and optional packet loss) */
|
||||
|
|
|
@ -1666,7 +1666,7 @@ struct cfg80211_bss_select_adjust {
|
|||
* (others are filtered out).
|
||||
* If ommited, all results are passed.
|
||||
* @n_match_sets: number of match sets
|
||||
* @results_wk: worker for processing results notification.
|
||||
* @report_results: indicates that results were reported for this request
|
||||
* @wiphy: the wiphy this was for
|
||||
* @dev: the interface
|
||||
* @scan_start: start time of the scheduled scan
|
||||
|
|
|
@ -1141,7 +1141,6 @@ enum mac80211_rx_flags {
|
|||
* enum mac80211_rx_encoding_flags - MCS & bandwidth flags
|
||||
*
|
||||
* @RX_ENC_FLAG_SHORTPRE: Short preamble was used for this frame
|
||||
* @RX_ENC_FLAG_40MHZ: HT40 (40 MHz) was used
|
||||
* @RX_ENC_FLAG_SHORT_GI: Short guard interval was used
|
||||
* @RX_ENC_FLAG_HT_GF: This frame was received in a HT-greenfield transmission,
|
||||
* if the driver fills this value it should add
|
||||
|
@ -1153,7 +1152,6 @@ enum mac80211_rx_flags {
|
|||
*/
|
||||
enum mac80211_rx_encoding_flags {
|
||||
RX_ENC_FLAG_SHORTPRE = BIT(0),
|
||||
RX_ENC_FLAG_40MHZ = BIT(1),
|
||||
RX_ENC_FLAG_SHORT_GI = BIT(2),
|
||||
RX_ENC_FLAG_HT_GF = BIT(3),
|
||||
RX_ENC_FLAG_STBC_MASK = BIT(4) | BIT(5),
|
||||
|
|
|
@ -66,6 +66,8 @@ ieee80211_ibss_build_presp(struct ieee80211_sub_if_data *sdata,
|
|||
2 + (IEEE80211_MAX_SUPP_RATES - 8) +
|
||||
2 + sizeof(struct ieee80211_ht_cap) +
|
||||
2 + sizeof(struct ieee80211_ht_operation) +
|
||||
2 + sizeof(struct ieee80211_vht_cap) +
|
||||
2 + sizeof(struct ieee80211_vht_operation) +
|
||||
ifibss->ie_len;
|
||||
presp = kzalloc(sizeof(*presp) + frame_len, GFP_KERNEL);
|
||||
if (!presp)
|
||||
|
|
|
@ -4382,6 +4382,10 @@ static int ieee80211_prep_connection(struct ieee80211_sub_if_data *sdata,
|
|||
if (WARN_ON(!ifmgd->auth_data && !ifmgd->assoc_data))
|
||||
return -EINVAL;
|
||||
|
||||
/* If a reconfig is happening, bail out */
|
||||
if (local->in_reconfig)
|
||||
return -EBUSY;
|
||||
|
||||
if (assoc) {
|
||||
rcu_read_lock();
|
||||
have_sta = sta_info_get(sdata, cbss->bssid);
|
||||
|
|
|
@ -2764,8 +2764,8 @@ static int nl80211_parse_mon_options(struct cfg80211_registered_device *rdev,
|
|||
nla_data(info->attrs[NL80211_ATTR_MU_MIMO_GROUP_DATA]);
|
||||
|
||||
/* bits 0 and 63 are reserved and must be zero */
|
||||
if ((mumimo_groups[0] & BIT(7)) ||
|
||||
(mumimo_groups[VHT_MUMIMO_GROUPS_DATA_LEN - 1] & BIT(0)))
|
||||
if ((mumimo_groups[0] & BIT(0)) ||
|
||||
(mumimo_groups[VHT_MUMIMO_GROUPS_DATA_LEN - 1] & BIT(7)))
|
||||
return -EINVAL;
|
||||
|
||||
params->vht_mumimo_groups = mumimo_groups;
|
||||
|
|
Loading…
Reference in New Issue