Ver código fonte

qcacmn: Correct VDEV state for channel switch disabled case

DUT as SAP and its VDEV change to UP state, since got radar event but
channel switch disabled. Then EV_DOWN is dropped and bss peer won't be
delete. Which cause unloading failure. This change moves VDEV to
UP-UP-ACTIVE state if got WLAN_VDEV_SM_EV_CHAN_SWITCH_DISABLED.

Change-Id: I9d3a47a66fd2281166f5106e0e7bfd36c3966ed0
CRs-Fixed: 3009264
Wu Gao 3 anos atrás
pai
commit
50f3c5d6a6
1 arquivos alterados com 13 adições e 0 exclusões
  1. 13 0
      umac/mlme/vdev_mgr/core/src/vdev_mlme_sm.c

+ 13 - 0
umac/mlme/vdev_mgr/core/src/vdev_mlme_sm.c

@@ -454,6 +454,19 @@ static bool mlme_vdev_state_up_event(void *ctx, uint16_t event,
 		status = true;
 		break;
 
+	/**
+	 * Channel switch disabled case, then tansition to up state
+	 * and deliver EV_UP_HOST_RESTART, hand it in up state and
+	 * move to up active state
+	 */
+	case WLAN_VDEV_SM_EV_UP_HOST_RESTART:
+		mlme_vdev_sm_transition_to(vdev_mlme,
+					   WLAN_VDEV_SS_UP_ACTIVE);
+		mlme_vdev_sm_deliver_event(vdev_mlme, event,
+					   event_data_len, event_data);
+		status = true;
+		break;
+
 	default:
 		status = false;
 		break;