Browse Source

qcacld-3.0: Fix wrong subnet_change_status derivation after roam

Subnet change status field is obtained from bits 4 & 5 of the
roam_reason field in roam synch indication. But in
cm_fill_roam_info() the subnet_change_status is received from
the masked roam reason field and is always 0. So after
roaming to AP with different subnet wrong subnet change
indication is sent to userspace and ultimately NUD failure is
triggered.

Get the subnet_change_status directly from the roam synch
indication

Change-Id: I708276750c0aa3f1586cf9501f55f742d42ebf3f
CRs-Fixed: 3438725
Pragaspathi Thilagaraj 2 năm trước cách đây
mục cha
commit
36f994680f

+ 1 - 1
components/umac/mlme/connection_mgr/core/src/wlan_cm_roam_fw_sync.c

@@ -596,7 +596,7 @@ cm_fill_roam_info(struct wlan_objmgr_vdev *vdev,
 	roaming_info->roam_reason =
 		roam_synch_data->roam_reason & ROAM_REASON_MASK;
 	roaming_info->subnet_change_status =
-			CM_GET_SUBNET_STATUS(roaming_info->roam_reason);
+			CM_GET_SUBNET_STATUS(roam_synch_data->roam_reason);
 	roaming_info->pmk_len = roam_synch_data->pmk_len;
 	if (roaming_info->pmk_len)
 		qdf_mem_copy(roaming_info->pmk, roam_synch_data->pmk,