Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --- a/drivers/net/wireless/rt2x00/rt2400pci.c
- +++ b/drivers/net/wireless/rt2x00/rt2400pci.c
- @@ -273,8 +273,10 @@ static void rt2400pci_config_filter(struct rt2x00_dev *rt2x00dev,
- !(filter_flags & FIF_PLCPFAIL));
- rt2x00_set_field32(®, RXCSR0_DROP_CONTROL,
- !(filter_flags & FIF_CONTROL));
- - rt2x00_set_field32(®, RXCSR0_DROP_NOT_TO_ME, 1);
- + rt2x00_set_field32(®, RXCSR0_DROP_NOT_TO_ME,
- + !test_bit(CONFIG_MONITORING, &rt2x00dev->flags));
- rt2x00_set_field32(®, RXCSR0_DROP_TODS,
- + !test_bit(CONFIG_MONITORING, &rt2x00dev->flags) &&
- !rt2x00dev->intf_ap_count);
- rt2x00_set_field32(®, RXCSR0_DROP_VERSION_ERROR, 1);
- rt2x00mmio_register_write(rt2x00dev, RXCSR0, reg);
- --- a/drivers/net/wireless/rt2x00/rt2500pci.c
- +++ b/drivers/net/wireless/rt2x00/rt2500pci.c
- @@ -274,8 +274,10 @@ static void rt2500pci_config_filter(struct rt2x00_dev *rt2x00dev,
- !(filter_flags & FIF_PLCPFAIL));
- rt2x00_set_field32(®, RXCSR0_DROP_CONTROL,
- !(filter_flags & FIF_CONTROL));
- - rt2x00_set_field32(®, RXCSR0_DROP_NOT_TO_ME, 1);
- + rt2x00_set_field32(®, RXCSR0_DROP_NOT_TO_ME,
- + !test_bit(CONFIG_MONITORING, &rt2x00dev->flags));
- rt2x00_set_field32(®, RXCSR0_DROP_TODS,
- + !test_bit(CONFIG_MONITORING, &rt2x00dev->flags) &&
- !rt2x00dev->intf_ap_count);
- rt2x00_set_field32(®, RXCSR0_DROP_VERSION_ERROR, 1);
- rt2x00_set_field32(®, RXCSR0_DROP_MCAST,
- --- a/drivers/net/wireless/rt2x00/rt2500usb.c
- +++ b/drivers/net/wireless/rt2x00/rt2500usb.c
- @@ -437,8 +437,10 @@ static void rt2500usb_config_filter(struct rt2x00_dev *rt2x00dev,
- !(filter_flags & FIF_PLCPFAIL));
- rt2x00_set_field16(®, TXRX_CSR2_DROP_CONTROL,
- !(filter_flags & FIF_CONTROL));
- - rt2x00_set_field16(®, TXRX_CSR2_DROP_NOT_TO_ME, 1);
- + rt2x00_set_field16(®, TXRX_CSR2_DROP_NOT_TO_ME,
- + !test_bit(CONFIG_MONITORING, &rt2x00dev->flags));
- rt2x00_set_field16(®, TXRX_CSR2_DROP_TODS,
- + !test_bit(CONFIG_MONITORING, &rt2x00dev->flags) &&
- !rt2x00dev->intf_ap_count);
- rt2x00_set_field16(®, TXRX_CSR2_DROP_VERSION_ERROR, 1);
- rt2x00_set_field16(®, TXRX_CSR2_DROP_MULTICAST,
- --- a/drivers/net/wireless/rt2x00/rt2800lib.c
- +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
- @@ -1490,7 +1490,8 @@ void rt2800_config_filter(struct rt2x00_dev *rt2x00dev,
- !(filter_flags & FIF_FCSFAIL));
- rt2x00_set_field32(®, RX_FILTER_CFG_DROP_PHY_ERROR,
- !(filter_flags & FIF_PLCPFAIL));
- - rt2x00_set_field32(®, RX_FILTER_CFG_DROP_NOT_TO_ME, 1);
- + rt2x00_set_field32(®, RX_FILTER_CFG_DROP_NOT_TO_ME,
- + !test_bit(CONFIG_MONITORING, &rt2x00dev->flags));
- rt2x00_set_field32(®, RX_FILTER_CFG_DROP_NOT_MY_BSSD, 0);
- rt2x00_set_field32(®, RX_FILTER_CFG_DROP_VER_ERROR, 1);
- rt2x00_set_field32(®, RX_FILTER_CFG_DROP_MULTICAST,
- --- a/drivers/net/wireless/rt2x00/rt2x00.h
- +++ b/drivers/net/wireless/rt2x00/rt2x00.h
- @@ -669,6 +669,7 @@ enum rt2x00_state_flags {
- CONFIG_POWERSAVING,
- CONFIG_HT_DISABLED,
- CONFIG_QOS_DISABLED,
- + CONFIG_MONITORING,
- /*
- * Mark we currently are sequentially reading TX_STA_FIFO register
- --- a/drivers/net/wireless/rt2x00/rt2x00config.c
- +++ b/drivers/net/wireless/rt2x00/rt2x00config.c
- @@ -277,6 +277,11 @@ void rt2x00lib_config(struct rt2x00_dev *rt2x00dev,
- else
- clear_bit(CONFIG_POWERSAVING, &rt2x00dev->flags);
- + if (conf->flags & IEEE80211_CONF_MONITOR)
- + set_bit(CONFIG_MONITORING, &rt2x00dev->flags);
- + else
- + clear_bit(CONFIG_MONITORING, &rt2x00dev->flags);
- +
- rt2x00dev->curr_band = conf->chandef.chan->band;
- rt2x00dev->curr_freq = conf->chandef.chan->center_freq;
- rt2x00dev->tx_power = conf->power_level;
- --- a/drivers/net/wireless/rt2x00/rt2x00mac.c
- +++ b/drivers/net/wireless/rt2x00/rt2x00mac.c
- @@ -385,11 +385,6 @@ void rt2x00mac_configure_filter(struct ieee80211_hw *hw,
- *total_flags |= FIF_PSPOLL;
- }
- - /*
- - * Check if there is any work left for us.
- - */
- - if (rt2x00dev->packet_filter == *total_flags)
- - return;
- rt2x00dev->packet_filter = *total_flags;
- rt2x00dev->ops->lib->config_filter(rt2x00dev, *total_flags);
- --- a/drivers/net/wireless/rt2x00/rt61pci.c
- +++ b/drivers/net/wireless/rt2x00/rt61pci.c
- @@ -530,8 +530,10 @@ static void rt61pci_config_filter(struct rt2x00_dev *rt2x00dev,
- !(filter_flags & FIF_PLCPFAIL));
- rt2x00_set_field32(®, TXRX_CSR0_DROP_CONTROL,
- !(filter_flags & (FIF_CONTROL | FIF_PSPOLL)));
- - rt2x00_set_field32(®, TXRX_CSR0_DROP_NOT_TO_ME, 1);
- + rt2x00_set_field32(®, TXRX_CSR0_DROP_NOT_TO_ME,
- + !test_bit(CONFIG_MONITORING, &rt2x00dev->flags));
- rt2x00_set_field32(®, TXRX_CSR0_DROP_TO_DS,
- + !test_bit(CONFIG_MONITORING, &rt2x00dev->flags) &&
- !rt2x00dev->intf_ap_count);
- rt2x00_set_field32(®, TXRX_CSR0_DROP_VERSION_ERROR, 1);
- rt2x00_set_field32(®, TXRX_CSR0_DROP_MULTICAST,
- --- a/drivers/net/wireless/rt2x00/rt73usb.c
- +++ b/drivers/net/wireless/rt2x00/rt73usb.c
- @@ -480,8 +480,10 @@ static void rt73usb_config_filter(struct rt2x00_dev *rt2x00dev,
- !(filter_flags & FIF_PLCPFAIL));
- rt2x00_set_field32(®, TXRX_CSR0_DROP_CONTROL,
- !(filter_flags & (FIF_CONTROL | FIF_PSPOLL)));
- - rt2x00_set_field32(®, TXRX_CSR0_DROP_NOT_TO_ME, 1);
- + rt2x00_set_field32(®, TXRX_CSR0_DROP_NOT_TO_ME,
- + !test_bit(CONFIG_MONITORING, &rt2x00dev->flags));
- rt2x00_set_field32(®, TXRX_CSR0_DROP_TO_DS,
- + !test_bit(CONFIG_MONITORING, &rt2x00dev->flags) &&
- !rt2x00dev->intf_ap_count);
- rt2x00_set_field32(®, TXRX_CSR0_DROP_VERSION_ERROR, 1);
- rt2x00_set_field32(®, TXRX_CSR0_DROP_MULTICAST,
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement