b43: Fixes injection speed (up to 350 pps)
RFC 1/2 b43: Fixes injection speed (up to 350 pps)
# Fixes injection speed (up to 350 pps)
drivers/net/wireless/b43/main.c +5 -0
@@ -2841,6 +2841,11 @@ static int b43_op_tx(struct ieee80211_hw *hw, goto out;if (unlikely (b43_status (dev) <B43_STAT_STARTED )) goto out; + +if (ctl->type ==IEEE80211_IF_TYPE_MNTR ) { + ctl->flags |=IEEE80211_TXCTL_NO_ACK ; + } +/* TX is done without a global lock. */ if (b43_using_pio_transfers (dev)) err =b43_pio_tx (dev, skb, ctl);
drivers/net/wireless/b43/xmit.c +2 -1
@@ -318,7 +318,8 @@ int b43_generate_txhdr(struct b43_wldev *dev,/* MAC control */ if (!(txctl->flags &IEEE80211_TXCTL_NO_ACK )) mac_ctl |=B43_TXH_MAC_ACK ; -if (!(((fctl &IEEE80211_FCTL_FTYPE ) ==IEEE80211_FTYPE_CTL ) && +if ( (txctl->type !=IEEE80211_IF_TYPE_MNTR ) && + !(((fctl &IEEE80211_FCTL_FTYPE ) ==IEEE80211_FTYPE_CTL ) && ((fctl &IEEE80211_FCTL_STYPE ) ==IEEE80211_STYPE_PSPOLL ))) mac_ctl |=B43_TXH_MAC_HWSEQ ;if (txctl->flags &IEEE80211_TXCTL_FIRST_FRAGMENT )
Johannes Berg
maintainerQuoted 13 lines
drivers/net/wireless/b43/main.c +4
-0+if (ctl->type ==IEEE80211_IF_TYPE_MNTR ) { + ctl->flags |=IEEE80211_TXCTL_NO_ACK ; + } +/* TX is done without a global lock. */ if (b43_using_pio_transfers (dev)) err =b43_pio_tx (dev, skb, ctl);drivers/net/wireless/b43/xmit.c +0
-0
drivers/net/wireless/b43/xmit.c int b43_generate_txhdr(struct b43_wldev *dev, · line 325
Quoted 9 lines
drivers/net/wireless/b43/xmit.c +2
-1@@ -318,7 +318,8 @@ int b43_generate_txhdr(struct b43_wldev *dev,/* MAC control */ if (!(txctl->flags &IEEE80211_TXCTL_NO_ACK )) mac_ctl |=B43_TXH_MAC_ACK ; -if (!(((fctl &IEEE80211_FCTL_FTYPE ) ==IEEE80211_FTYPE_CTL ) && +if ( (txctl->type !=IEEE80211_IF_TYPE_MNTR ) && + !(((fctl &IEEE80211_FCTL_FTYPE ) ==IEEE80211_FTYPE_CTL ) && ((fctl &IEEE80211_FCTL_STYPE ) ==IEEE80211_STYPE_PSPOLL ))) mac_ctl |=B43_TXH_MAC_HWSEQ ;if (txctl->flags &IEEE80211_TXCTL_FIRST_FRAGMENT )
FWIW, Michael meant this one too, it's not acceptable and we've previously said why.
johannes