mirror of
https://github.com/pentoo/pentoo-overlay
synced 2025-12-06 08:25:01 +01:00
21 lines
945 B
Diff
21 lines
945 B
Diff
--- a/drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c
|
|
+++ b/drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c
|
|
@@ -248,8 +248,17 @@ static void rtl8187_tx(struct ieee80211_
|
|
flags |= RTL818X_TX_DESC_FLAG_NO_ENC;
|
|
|
|
flags |= ieee80211_get_tx_rate(dev, info)->hw_value << 24;
|
|
+
|
|
+ // When this flag is set the firmware waits untill ALL fragments have
|
|
+ // reached the USB device. Then it sends the first fragment and waits
|
|
+ // for ACKS's. Of course in monitor mode it won't detect these ACK's.
|
|
if (ieee80211_has_morefrags(tx_hdr->frame_control))
|
|
- flags |= RTL818X_TX_DESC_FLAG_MOREFRAG;
|
|
+ {
|
|
+ // If info->control.vif is NULL it's most likely in monitor mode
|
|
+ if (likely(info->control.vif != NULL && info->control.vif->type != NL80211_IFTYPE_MONITOR)) {
|
|
+ flags |= RTL818X_TX_DESC_FLAG_MOREFRAG;
|
|
+ }
|
|
+ }
|
|
|
|
/* HW will perform RTS-CTS when only RTS flags is set.
|
|
* HW will perform CTS-to-self when both RTS and CTS flags are set.
|