瀏覽代碼

mwifiex: do not setup AMPDU/AMSDU with broadcast receiver

It is observed that device sometimes sends BA setup requests for
broadcast mac address.
This patch adds a check to avoid checking availability of
AMPDU/AMSDU streams for broadcast mac address.

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Avinash Patil 10 年之前
父節點
當前提交
bfd713bc1a
共有 1 個文件被更改,包括 4 次插入0 次删除
  1. 4 0
      drivers/net/wireless/mwifiex/11n.h

+ 4 - 0
drivers/net/wireless/mwifiex/11n.h

@@ -84,6 +84,8 @@ mwifiex_is_amsdu_in_ampdu_allowed(struct mwifiex_private *priv,
 {
 {
 	struct mwifiex_tx_ba_stream_tbl *tx_tbl;
 	struct mwifiex_tx_ba_stream_tbl *tx_tbl;
 
 
+	if (is_broadcast_ether_addr(ptr->ra))
+		return false;
 	tx_tbl = mwifiex_get_ba_tbl(priv, tid, ptr->ra);
 	tx_tbl = mwifiex_get_ba_tbl(priv, tid, ptr->ra);
 	if (tx_tbl)
 	if (tx_tbl)
 		return tx_tbl->amsdu;
 		return tx_tbl->amsdu;
@@ -96,6 +98,8 @@ static inline u8
 mwifiex_is_ampdu_allowed(struct mwifiex_private *priv,
 mwifiex_is_ampdu_allowed(struct mwifiex_private *priv,
 			 struct mwifiex_ra_list_tbl *ptr, int tid)
 			 struct mwifiex_ra_list_tbl *ptr, int tid)
 {
 {
+	if (is_broadcast_ether_addr(ptr->ra))
+		return false;
 	if (GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_UAP) {
 	if (GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_UAP) {
 		return mwifiex_is_station_ampdu_allowed(priv, ptr, tid);
 		return mwifiex_is_station_ampdu_allowed(priv, ptr, tid);
 	} else {
 	} else {