Просмотр исходного кода

qcacld-3.0: Don't allow NAN enable when DFS CAC is in progress

When DFS CAC is going on for SAP, if 5 GHz mac is occupied by the
SAP and it's not available for 5 GHz NAN discovery. Enabling NAN
on 5 GHz in such cases cause inconsistency in firmware state machine
and firmware may assert as DFS MAC is not supposed to be disturbed
while CAC is going on.

So, check if NAN enable request has 5 GHz NAN channel also and reject
the request. Allow NAN enable command if it's 2 GHz only NAN enable
request, while CAC is going on.

Change-Id: If3f2b2b40cc2b70bc7a872970bc088204440d519
CRs-Fixed: 3458462
Vijay Patil 1 год назад
Родитель
Сommit
29d922df4a
2 измененных файлов с 17 добавлено и 0 удалено
  1. 6 0
      components/nan/core/src/nan_main.c
  2. 11 0
      components/nan/core/src/nan_main_i.h

+ 6 - 0
components/nan/core/src/nan_main.c

@@ -1200,6 +1200,12 @@ static QDF_STATUS nan_set_hw_mode(struct wlan_objmgr_psoc *psoc,
 		goto pre_enable_failure;
 	}
 
+	if (wlan_util_is_vdev_in_cac_wait(pdev, WLAN_NAN_ID)) {
+		nan_err_rl("cac is in progress");
+		status = QDF_STATUS_E_FAILURE;
+		goto pre_enable_failure;
+	}
+
 pre_enable_failure:
 	if (pdev)
 		wlan_objmgr_pdev_release_ref(pdev, WLAN_NAN_ID);

+ 11 - 0
components/nan/core/src/nan_main_i.h

@@ -61,6 +61,17 @@ struct scheduler_msg;
 #define nan_nofl_debug(params...) \
 	QDF_TRACE_DEBUG_NO_FL(QDF_MODULE_ID_NAN, params)
 
+#define nan_alert_rl(params...) \
+	QDF_TRACE_FATAL_RL(QDF_MODULE_ID_NAN, params)
+#define nan_err_rl(params...) \
+	QDF_TRACE_ERROR_RL(QDF_MODULE_ID_NAN, params)
+#define nan_warn_rl(params...) \
+	QDF_TRACE_WARN_RL(QDF_MODULE_ID_NAN, params)
+#define nan_info_rl(params...) \
+	QDF_TRACE_INFO_RL(QDF_MODULE_ID_NAN, params)
+#define nan_debug_rl(params...) \
+	QDF_TRACE_DEBUG_RL(QDF_MODULE_ID_NAN, params)
+
 /**
  * enum nan_disc_state - NAN Discovery states
  * @NAN_DISC_DISABLED: NAN Discovery is disabled