|
@@ -3563,7 +3563,8 @@ QDF_STATUS csr_roam_call_callback(struct mac_context *mac, uint32_t sessionId,
|
|
|
}
|
|
|
|
|
|
static bool csr_peer_mac_match_cmd(tSmeCmd *sme_cmd,
|
|
|
- struct qdf_mac_addr peer_macaddr)
|
|
|
+ struct qdf_mac_addr peer_macaddr,
|
|
|
+ uint8_t vdev_id)
|
|
|
{
|
|
|
if (sme_cmd->command == eSmeCommandRoam &&
|
|
|
(sme_cmd->u.roamCmd.roamReason == eCsrForcedDisassocSta ||
|
|
@@ -3572,6 +3573,13 @@ static bool csr_peer_mac_match_cmd(tSmeCmd *sme_cmd,
|
|
|
QDF_MAC_ADDR_SIZE))
|
|
|
return true;
|
|
|
|
|
|
+ /*
|
|
|
+ * For STA/CLI mode for NB disconnect peer mac is not stored, so check
|
|
|
+ * vdev id as there is only one bssid/peer for STA/CLI.
|
|
|
+ */
|
|
|
+ if (CSR_IS_DISCONNECT_COMMAND(sme_cmd) && sme_cmd->vdev_id == vdev_id)
|
|
|
+ return true;
|
|
|
+
|
|
|
if (sme_cmd->command == eSmeCommandWmStatusChange) {
|
|
|
struct wmstatus_changecmd *wms_cmd;
|
|
|
|
|
@@ -3604,7 +3612,7 @@ csr_is_deauth_disassoc_in_pending_q(struct mac_context *mac_ctx,
|
|
|
while (entry) {
|
|
|
sme_cmd = GET_BASE_ADDR(entry, tSmeCmd, Link);
|
|
|
if ((sme_cmd->vdev_id == vdev_id) &&
|
|
|
- csr_peer_mac_match_cmd(sme_cmd, peer_macaddr))
|
|
|
+ csr_peer_mac_match_cmd(sme_cmd, peer_macaddr, vdev_id))
|
|
|
return true;
|
|
|
entry = csr_nonscan_pending_ll_next(mac_ctx, entry,
|
|
|
LL_ACCESS_NOLOCK);
|
|
@@ -3623,13 +3631,13 @@ csr_is_deauth_disassoc_in_active_q(struct mac_context *mac_ctx,
|
|
|
sme_cmd = wlan_serialization_get_active_cmd(mac_ctx->psoc, vdev_id,
|
|
|
WLAN_SER_CMD_FORCE_DEAUTH_STA);
|
|
|
|
|
|
- if (sme_cmd && csr_peer_mac_match_cmd(sme_cmd, peer_macaddr))
|
|
|
+ if (sme_cmd && csr_peer_mac_match_cmd(sme_cmd, peer_macaddr, vdev_id))
|
|
|
return true;
|
|
|
|
|
|
sme_cmd = wlan_serialization_get_active_cmd(mac_ctx->psoc, vdev_id,
|
|
|
WLAN_SER_CMD_FORCE_DISASSOC_STA);
|
|
|
|
|
|
- if (sme_cmd && csr_peer_mac_match_cmd(sme_cmd, peer_macaddr))
|
|
|
+ if (sme_cmd && csr_peer_mac_match_cmd(sme_cmd, peer_macaddr, vdev_id))
|
|
|
return true;
|
|
|
|
|
|
/*
|
|
@@ -3638,7 +3646,7 @@ csr_is_deauth_disassoc_in_active_q(struct mac_context *mac_ctx,
|
|
|
*/
|
|
|
sme_cmd = wlan_serialization_get_active_cmd(mac_ctx->psoc, vdev_id,
|
|
|
WLAN_SER_CMD_WM_STATUS_CHANGE);
|
|
|
- if (sme_cmd && csr_peer_mac_match_cmd(sme_cmd, peer_macaddr))
|
|
|
+ if (sme_cmd && csr_peer_mac_match_cmd(sme_cmd, peer_macaddr, vdev_id))
|
|
|
return true;
|
|
|
|
|
|
return false;
|