Browse Source

qcacld-3.0: Dont update WMA PMF capability per peer

WMA interface PMF capability is vdev configuration hence do not
update the capability in WMA interface based on peer capability.

Change-Id: I08b39b9bc631321aa77aa1ab3bcbf1841bb3dda1
CRs-Fixed: 2504060
Kiran Kumar Lokere 5 years ago
parent
commit
25b3bf24b8
2 changed files with 9 additions and 6 deletions
  1. 5 0
      core/wma/src/wma_data.c
  2. 4 6
      core/wma/src/wma_dev_if.c

+ 5 - 0
core/wma/src/wma_data.c

@@ -2608,6 +2608,11 @@ QDF_STATUS wma_tx_packet(void *wma_context, void *tx_frame, uint16_t frmLen,
 		 * map, normal tx unmap is enough for this case.
 		 */
 		QDF_NBUF_CB_TX_DMA_BI_MAP((qdf_nbuf_t)tx_frame) = 1;
+	} else if (iface && !iface->rmfEnabled) {
+		if (pFc->wep && (frmType == TXRX_FRM_802_11_MGMT)) {
+			wma_err("PMF is disabled, but WEP is set");
+			pFc->wep = 0;
+		}
 	}
 #endif /* WLAN_FEATURE_11W */
 	mHdr = (tpSirMacMgmtHdr)qdf_nbuf_data(tx_frame);

+ 4 - 6
core/wma/src/wma_dev_if.c

@@ -3940,6 +3940,7 @@ static void wma_add_bss_ap_mode(tp_wma_handle wma, struct bss_params *add_bss)
 	QDF_STATUS status;
 	int8_t maxTxPower;
 	void *soc = cds_get_context(QDF_MODULE_ID_SOC);
+	struct wma_txrx_node *iface;
 
 	pdev = cds_get_context(QDF_MODULE_ID_TXRX);
 
@@ -3982,6 +3983,8 @@ static void wma_add_bss_ap_mode(tp_wma_handle wma, struct bss_params *add_bss)
 		goto peer_cleanup;
 	}
 
+	iface = &wma->interfaces[vdev_id];
+
 	add_bss->staContext.staIdx = cdp_peer_get_local_peer_id(soc, peer);
 
 	qdf_mem_zero(&req, sizeof(req));
@@ -4002,7 +4005,7 @@ static void wma_add_bss_ap_mode(tp_wma_handle wma, struct bss_params *add_bss)
 
 	req.max_txpow = add_bss->maxTxPower;
 	maxTxPower = add_bss->maxTxPower;
-
+	iface->rmfEnabled = add_bss->rmfEnabled;
 	if (add_bss->rmfEnabled)
 		wma_set_mgmt_frame_protection(wma);
 
@@ -4728,11 +4731,6 @@ static void wma_add_sta_req_ap_mode(tp_wma_handle wma, tpAddStaParams add_sta)
 		}
 	}
 #endif
-
-	iface->rmfEnabled = add_sta->rmfEnabled;
-	if (add_sta->rmfEnabled)
-		wma_set_mgmt_frame_protection(wma);
-
 	if (add_sta->uAPSD) {
 		status = wma_set_ap_peer_uapsd(wma, add_sta->smesessionId,
 					    add_sta->staMac,