Parcourir la source

qcacld-3.0: Fix LFR2 fail on diff channel during multi-sessions

SIR_SCAN_EVENT_FOREIGN_CHANNEL event passed vdev_id, not PE
session id, can't use pe_find_session_by_session_id to get PE
session, should use pe_find_session_by_sme_session_id
smeSessionId is same as vdev_id.
vdevi_id isn't same as pe session id during following STA-P2P
case:
3 vdevs: STA(vdev0), P2P(vdev1), P2P Go(vdev2)
2 PE sessions: 0: P2P Go(vdev2),  1: STA(vdev0)
STA vdev is created before P2P,  but P2P session is created
before STA,  P2P connection happened before  STA connection.
LFR2 pre-auth happened on vdev0,  but PE session 1.

Change-Id: If0d634e84316cf0f19edac57d99ad8a9c1273279
CRs-Fixed: 2172029
Zhu Jianmin il y a 7 ans
Parent
commit
3e90479f0f
1 fichiers modifiés avec 2 ajouts et 2 suppressions
  1. 2 2
      core/mac/src/pe/lim/lim_ft_preauth.c

+ 2 - 2
core/mac/src/pe/lim/lim_ft_preauth.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016-2017 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2016-2018 The Linux Foundation. All rights reserved.
  *
  * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
  *
@@ -755,7 +755,7 @@ void lim_preauth_scan_event_handler(tpAniSirGlobal mac_ctx,
 {
 	tpPESession session_entry;
 
-	session_entry = pe_find_session_by_session_id(mac_ctx, session_id);
+	session_entry = pe_find_session_by_sme_session_id(mac_ctx, session_id);
 	if (session_entry == NULL) {
 		pe_err("SessionId:%d Session Does not exist", session_id);
 		return;