mac80211: remove support for IFF_PROMISC
This support is essentially useless as typically networks are encrypted, frames will be filtered by hardware, and rate scaling will be done with the intended recipient in mind. For real monitoring of the network, the monitor mode support should be used instead. Removing it removes a lot of corner cases. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
此提交包含在:
@@ -310,8 +310,7 @@ static int carl9170_fw(struct ar9170 *ar, const __u8 *data, size_t len)
|
||||
if (SUPP(CARL9170FW_RX_FILTER)) {
|
||||
ar->fw.rx_filter = true;
|
||||
ar->rx_filter_caps = FIF_FCSFAIL | FIF_PLCPFAIL |
|
||||
FIF_CONTROL | FIF_PSPOLL | FIF_OTHER_BSS |
|
||||
FIF_PROMISC_IN_BSS;
|
||||
FIF_CONTROL | FIF_PSPOLL | FIF_OTHER_BSS;
|
||||
}
|
||||
|
||||
if (SUPP(CARL9170FW_HW_COUNTERS))
|
||||
|
@@ -1011,9 +1011,8 @@ static void carl9170_op_configure_filter(struct ieee80211_hw *hw,
|
||||
if (multicast != ar->cur_mc_hash)
|
||||
WARN_ON(carl9170_update_multicast(ar, multicast));
|
||||
|
||||
if (changed_flags & (FIF_OTHER_BSS | FIF_PROMISC_IN_BSS)) {
|
||||
ar->sniffer_enabled = !!(*new_flags &
|
||||
(FIF_OTHER_BSS | FIF_PROMISC_IN_BSS));
|
||||
if (changed_flags & FIF_OTHER_BSS) {
|
||||
ar->sniffer_enabled = !!(*new_flags & FIF_OTHER_BSS);
|
||||
|
||||
WARN_ON(carl9170_set_operating_mode(ar));
|
||||
}
|
||||
@@ -1033,7 +1032,7 @@ static void carl9170_op_configure_filter(struct ieee80211_hw *hw,
|
||||
if (!(*new_flags & FIF_PSPOLL))
|
||||
rx_filter |= CARL9170_RX_FILTER_CTL_PSPOLL;
|
||||
|
||||
if (!(*new_flags & (FIF_OTHER_BSS | FIF_PROMISC_IN_BSS))) {
|
||||
if (!(*new_flags & FIF_OTHER_BSS)) {
|
||||
rx_filter |= CARL9170_RX_FILTER_OTHER_RA;
|
||||
rx_filter |= CARL9170_RX_FILTER_DECRY_FAIL;
|
||||
}
|
||||
|
新增問題並參考
封鎖使用者