|
@@ -20358,13 +20358,189 @@ static int wlan_hdd_cfg80211_connect(struct wiphy *wiphy,
|
|
|
return errno;
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * hdd_ieee80211_reason_code_to_str() - return string conversion of reason code
|
|
|
+ * @reason: ieee80211 reason code.
|
|
|
+ *
|
|
|
+ * This utility function helps log string conversion of reason code.
|
|
|
+ *
|
|
|
+ * Return: string conversion of reason code, if match found;
|
|
|
+ * "Unknown" otherwise.
|
|
|
+ */
|
|
|
+static const char *hdd_ieee80211_reason_code_to_str(uint16_t reason)
|
|
|
+{
|
|
|
+ switch (reason) {
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_UNSPECIFIED);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_PREV_AUTH_NOT_VALID);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_DEAUTH_LEAVING);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_DISASSOC_DUE_TO_INACTIVITY);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_DISASSOC_AP_BUSY);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_CLASS2_FRAME_FROM_NONAUTH_STA);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_DISASSOC_STA_HAS_LEFT);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_STA_REQ_ASSOC_WITHOUT_AUTH);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_DISASSOC_BAD_POWER);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_DISASSOC_BAD_SUPP_CHAN);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_INVALID_IE);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_MIC_FAILURE);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_4WAY_HANDSHAKE_TIMEOUT);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_GROUP_KEY_HANDSHAKE_TIMEOUT);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_IE_DIFFERENT);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_INVALID_GROUP_CIPHER);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_INVALID_PAIRWISE_CIPHER);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_INVALID_AKMP);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_UNSUPP_RSN_VERSION);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_INVALID_RSN_IE_CAP);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_IEEE8021X_FAILED);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_CIPHER_SUITE_REJECTED);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_DISASSOC_UNSPECIFIED_QOS);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_DISASSOC_QAP_NO_BANDWIDTH);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_DISASSOC_LOW_ACK);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_DISASSOC_QAP_EXCEED_TXOP);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_QSTA_LEAVE_QBSS);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_QSTA_NOT_USE);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_QSTA_REQUIRE_SETUP);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_QSTA_TIMEOUT);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_QSTA_CIPHER_NOT_SUPP);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_MESH_PEER_CANCELED);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_MESH_MAX_PEERS);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_MESH_CONFIG);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_MESH_CLOSE);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_MESH_MAX_RETRIES);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_MESH_CONFIRM_TIMEOUT);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_MESH_INVALID_GTK);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_MESH_INCONSISTENT_PARAM);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_MESH_INVALID_SECURITY);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_MESH_PATH_ERROR);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_MESH_PATH_NOFORWARD);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_MESH_PATH_DEST_UNREACHABLE);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_MAC_EXISTS_IN_MBSS);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_MESH_CHAN_REGULATORY);
|
|
|
+ CASE_RETURN_STRING(WLAN_REASON_MESH_CHAN);
|
|
|
+ default:
|
|
|
+ return "Unknown";
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * hdd_qca_reason_to_str() - return string conversion of qca reason code
|
|
|
+ * @reason: enum qca_disconnect_reason_codes
|
|
|
+ *
|
|
|
+ * This utility function helps log string conversion of qca reason code.
|
|
|
+ *
|
|
|
+ * Return: string conversion of reason code, if match found;
|
|
|
+ * "Unknown" otherwise.
|
|
|
+ */
|
|
|
+static const char *
|
|
|
+hdd_qca_reason_to_str(enum qca_disconnect_reason_codes reason)
|
|
|
+{
|
|
|
+ switch (reason) {
|
|
|
+ CASE_RETURN_STRING(QCA_DISCONNECT_REASON_INTERNAL_ROAM_FAILURE);
|
|
|
+ CASE_RETURN_STRING(QCA_DISCONNECT_REASON_EXTERNAL_ROAM_FAILURE);
|
|
|
+ CASE_RETURN_STRING(QCA_DISCONNECT_REASON_GATEWAY_REACHABILITY_FAILURE);
|
|
|
+ CASE_RETURN_STRING(QCA_DISCONNECT_REASON_UNSUPPORTED_CHANNEL_CSA);
|
|
|
+ CASE_RETURN_STRING(QCA_DISCONNECT_REASON_OPER_CHANNEL_DISABLED_INDOOR);
|
|
|
+ CASE_RETURN_STRING(QCA_DISCONNECT_REASON_OPER_CHANNEL_USER_DISABLED);
|
|
|
+ CASE_RETURN_STRING(QCA_DISCONNECT_REASON_DEVICE_RECOVERY);
|
|
|
+ CASE_RETURN_STRING(QCA_DISCONNECT_REASON_KEY_TIMEOUT);
|
|
|
+ CASE_RETURN_STRING(QCA_DISCONNECT_REASON_OPER_CHANNEL_BAND_CHANGE);
|
|
|
+ CASE_RETURN_STRING(QCA_DISCONNECT_REASON_IFACE_DOWN);
|
|
|
+ CASE_RETURN_STRING(QCA_DISCONNECT_REASON_PEER_XRETRY_FAIL);
|
|
|
+ CASE_RETURN_STRING(QCA_DISCONNECT_REASON_PEER_INACTIVITY);
|
|
|
+ CASE_RETURN_STRING(QCA_DISCONNECT_REASON_SA_QUERY_TIMEOUT);
|
|
|
+ CASE_RETURN_STRING(QCA_DISCONNECT_REASON_BEACON_MISS_FAILURE);
|
|
|
+ CASE_RETURN_STRING(QCA_DISCONNECT_REASON_CHANNEL_SWITCH_FAILURE);
|
|
|
+ CASE_RETURN_STRING(QCA_DISCONNECT_REASON_USER_TRIGGERED);
|
|
|
+ case QCA_DISCONNECT_REASON_UNSPECIFIED:
|
|
|
+ return "";
|
|
|
+ default:
|
|
|
+ return "Unknown";
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * wlan_hdd_sir_mac_to_qca_reason() - Convert to qca internal disconnect reason
|
|
|
+ * @internal_reason: Mac reason code of type @enum eSirMacReasonCodes
|
|
|
+ *
|
|
|
+ * Check if it is internal reason code and convert it to the
|
|
|
+ * enum qca_disconnect_reason_codes.
|
|
|
+ *
|
|
|
+ * Return: Reason code of type enum qca_disconnect_reason_codes
|
|
|
+ */
|
|
|
+static enum qca_disconnect_reason_codes
|
|
|
+wlan_hdd_sir_mac_to_qca_reason(enum eSirMacReasonCodes internal_reason)
|
|
|
+{
|
|
|
+ enum qca_disconnect_reason_codes reason =
|
|
|
+ QCA_DISCONNECT_REASON_UNSPECIFIED;
|
|
|
+ switch (internal_reason) {
|
|
|
+ case eSIR_MAC_HOST_TRIGGERED_ROAM_FAILURE:
|
|
|
+ reason = QCA_DISCONNECT_REASON_INTERNAL_ROAM_FAILURE;
|
|
|
+ break;
|
|
|
+ case eSIR_MAC_FW_TRIGGERED_ROAM_FAILURE:
|
|
|
+ reason = QCA_DISCONNECT_REASON_EXTERNAL_ROAM_FAILURE;
|
|
|
+ break;
|
|
|
+ case eSIR_MAC_GATEWAY_REACHABILITY_FAILURE:
|
|
|
+ reason =
|
|
|
+ QCA_DISCONNECT_REASON_GATEWAY_REACHABILITY_FAILURE;
|
|
|
+ break;
|
|
|
+ case eSIR_MAC_UNSUPPORTED_CHANNEL_CSA:
|
|
|
+ reason = QCA_DISCONNECT_REASON_UNSUPPORTED_CHANNEL_CSA;
|
|
|
+ break;
|
|
|
+ case eSIR_MAC_OPER_CHANNEL_DISABLED_INDOOR:
|
|
|
+ reason =
|
|
|
+ QCA_DISCONNECT_REASON_OPER_CHANNEL_DISABLED_INDOOR;
|
|
|
+ break;
|
|
|
+ case eSIR_MAC_OPER_CHANNEL_USER_DISABLED:
|
|
|
+ reason =
|
|
|
+ QCA_DISCONNECT_REASON_OPER_CHANNEL_USER_DISABLED;
|
|
|
+ break;
|
|
|
+ case eSIR_MAC_DEVICE_RECOVERY:
|
|
|
+ reason = QCA_DISCONNECT_REASON_DEVICE_RECOVERY;
|
|
|
+ break;
|
|
|
+ case eSIR_MAC_KEY_TIMEOUT:
|
|
|
+ reason = QCA_DISCONNECT_REASON_KEY_TIMEOUT;
|
|
|
+ break;
|
|
|
+ case eSIR_MAC_OPER_CHANNEL_BAND_CHANGE:
|
|
|
+ reason = QCA_DISCONNECT_REASON_OPER_CHANNEL_BAND_CHANGE;
|
|
|
+ break;
|
|
|
+ case eSIR_MAC_IFACE_DOWN:
|
|
|
+ reason = QCA_DISCONNECT_REASON_IFACE_DOWN;
|
|
|
+ break;
|
|
|
+ case eSIR_MAC_PEER_XRETRY_FAIL:
|
|
|
+ reason = QCA_DISCONNECT_REASON_PEER_XRETRY_FAIL;
|
|
|
+ break;
|
|
|
+ case eSIR_MAC_PEER_INACTIVITY:
|
|
|
+ reason = QCA_DISCONNECT_REASON_PEER_INACTIVITY;
|
|
|
+ break;
|
|
|
+ case eSIR_MAC_SA_QUERY_TIMEOUT:
|
|
|
+ reason = QCA_DISCONNECT_REASON_SA_QUERY_TIMEOUT;
|
|
|
+ break;
|
|
|
+ case eSIR_MAC_CHANNEL_SWITCH_FAILED:
|
|
|
+ reason = QCA_DISCONNECT_REASON_CHANNEL_SWITCH_FAILURE;
|
|
|
+ break;
|
|
|
+ case eSIR_MAC_BEACON_MISSED:
|
|
|
+ reason = QCA_DISCONNECT_REASON_BEACON_MISS_FAILURE;
|
|
|
+ break;
|
|
|
+ case eSIR_MAC_USER_TRIGGERED_ROAM_FAILURE:
|
|
|
+ reason = QCA_DISCONNECT_REASON_USER_TRIGGERED;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ hdd_debug("No QCA reason code for mac reason: %u",
|
|
|
+ internal_reason);
|
|
|
+ /* Unspecified reason by default */
|
|
|
+ }
|
|
|
+
|
|
|
+ return reason;
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* wlan_hdd_get_ieee80211_disconnect_reason() - Get ieee80211 disconnect reason
|
|
|
* @adapter: pointer to adapter structure
|
|
|
* @reason: Mac Disconnect reason code as per @enum eSirMacReasonCodes
|
|
|
*
|
|
|
* Reason codes that are greater than eSIR_MAC_REASON_PROP_START are internal
|
|
|
- * reason codes. Cache the same in hdd_ctx and return UNSPECIFIED.
|
|
|
+ * reason codes. Convert them to qca reason code format and cache in adapter
|
|
|
+ * and return UNSPECIFIED.
|
|
|
* Rest of the reason codes are valid ieee80211 reason codes.
|
|
|
*
|
|
|
* Return: Reason code of type ieee80211_reasoncode.
|
|
@@ -20376,13 +20552,17 @@ wlan_hdd_get_cfg80211_disconnect_reason(struct hdd_adapter *adapter,
|
|
|
enum ieee80211_reasoncode ieee80211_reason = WLAN_REASON_UNSPECIFIED;
|
|
|
|
|
|
/*
|
|
|
- * Cache internal reason code in adapter. This can be sent to
|
|
|
- * userspace with a vendor event.
|
|
|
+ * Convert and cache internal reason code in adapter. This can be
|
|
|
+ * sent to userspace with a vendor event.
|
|
|
*/
|
|
|
- if (reason >= eSIR_MAC_REASON_PROP_START)
|
|
|
- adapter->last_disconnect_reason = reason;
|
|
|
- else
|
|
|
+ if (reason >= eSIR_MAC_REASON_PROP_START) {
|
|
|
+ adapter->last_disconnect_reason =
|
|
|
+ wlan_hdd_sir_mac_to_qca_reason(reason);
|
|
|
+ } else {
|
|
|
ieee80211_reason = (enum ieee80211_reasoncode)reason;
|
|
|
+ adapter->last_disconnect_reason =
|
|
|
+ QCA_DISCONNECT_REASON_UNSPECIFIED;
|
|
|
+ }
|
|
|
|
|
|
return ieee80211_reason;
|
|
|
}
|
|
@@ -20400,8 +20580,12 @@ wlan_hdd_cfg80211_indicate_disconnect(struct hdd_adapter *adapter,
|
|
|
|
|
|
ieee80211_reason = wlan_hdd_get_cfg80211_disconnect_reason(adapter,
|
|
|
reason);
|
|
|
- hdd_debug("Disconnect reason code - MAC: %u, IEEE80211: %u locally_generated: %u",
|
|
|
- reason, ieee80211_reason, locally_generated);
|
|
|
+ hdd_nofl_info("Disconnect reason: %u %s vendor: %u %s LG: %u",
|
|
|
+ ieee80211_reason,
|
|
|
+ hdd_ieee80211_reason_code_to_str(ieee80211_reason),
|
|
|
+ adapter->last_disconnect_reason,
|
|
|
+ hdd_qca_reason_to_str(adapter->last_disconnect_reason),
|
|
|
+ locally_generated);
|
|
|
cfg80211_disconnected(adapter->dev, ieee80211_reason, disconnect_ies,
|
|
|
disconnect_ies_len, locally_generated,
|
|
|
GFP_KERNEL);
|
|
@@ -20418,8 +20602,12 @@ wlan_hdd_cfg80211_indicate_disconnect(struct hdd_adapter *adapter,
|
|
|
|
|
|
ieee80211_reason = wlan_hdd_get_cfg80211_disconnect_reason(adapter,
|
|
|
reason);
|
|
|
- hdd_debug("Disconnect reason code - MAC: %u, IEEE80211: %u locally_generated: %u",
|
|
|
- reason, ieee80211_reason, locally_generated);
|
|
|
+ hdd_nofl_info("Disconnect reason: %u %s vendor: %u %s LG: %u",
|
|
|
+ ieee80211_reason,
|
|
|
+ hdd_ieee80211_reason_code_to_str(ieee80211_reason),
|
|
|
+ adapter->last_disconnect_reason,
|
|
|
+ hdd_qca_reason_to_str(adapter->last_disconnect_reason),
|
|
|
+ locally_generated);
|
|
|
cfg80211_disconnected(adapter->dev, ieee80211_reason, disconnect_ies,
|
|
|
disconnect_ies_len, GFP_KERNEL);
|
|
|
}
|
|
@@ -20453,70 +20641,6 @@ int wlan_hdd_disconnect(struct hdd_adapter *adapter, u16 reason,
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
-/**
|
|
|
- * hdd_ieee80211_reason_code_to_str() - return string conversion of reason code
|
|
|
- * @reason: ieee80211 reason code.
|
|
|
- *
|
|
|
- * This utility function helps log string conversion of reason code.
|
|
|
- *
|
|
|
- * Return: string conversion of reason code, if match found;
|
|
|
- * "Unknown" otherwise.
|
|
|
- */
|
|
|
-static const char *hdd_ieee80211_reason_code_to_str(uint16_t reason)
|
|
|
-{
|
|
|
- switch (reason) {
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_UNSPECIFIED);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_PREV_AUTH_NOT_VALID);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_DEAUTH_LEAVING);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_DISASSOC_DUE_TO_INACTIVITY);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_DISASSOC_AP_BUSY);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_CLASS2_FRAME_FROM_NONAUTH_STA);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_DISASSOC_STA_HAS_LEFT);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_STA_REQ_ASSOC_WITHOUT_AUTH);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_DISASSOC_BAD_POWER);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_DISASSOC_BAD_SUPP_CHAN);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_INVALID_IE);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_MIC_FAILURE);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_4WAY_HANDSHAKE_TIMEOUT);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_GROUP_KEY_HANDSHAKE_TIMEOUT);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_IE_DIFFERENT);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_INVALID_GROUP_CIPHER);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_INVALID_PAIRWISE_CIPHER);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_INVALID_AKMP);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_UNSUPP_RSN_VERSION);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_INVALID_RSN_IE_CAP);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_IEEE8021X_FAILED);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_CIPHER_SUITE_REJECTED);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_DISASSOC_UNSPECIFIED_QOS);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_DISASSOC_QAP_NO_BANDWIDTH);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_DISASSOC_LOW_ACK);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_DISASSOC_QAP_EXCEED_TXOP);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_QSTA_LEAVE_QBSS);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_QSTA_NOT_USE);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_QSTA_REQUIRE_SETUP);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_QSTA_TIMEOUT);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_QSTA_CIPHER_NOT_SUPP);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_MESH_PEER_CANCELED);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_MESH_MAX_PEERS);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_MESH_CONFIG);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_MESH_CLOSE);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_MESH_MAX_RETRIES);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_MESH_CONFIRM_TIMEOUT);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_MESH_INVALID_GTK);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_MESH_INCONSISTENT_PARAM);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_MESH_INVALID_SECURITY);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_MESH_PATH_ERROR);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_MESH_PATH_NOFORWARD);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_MESH_PATH_DEST_UNREACHABLE);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_MAC_EXISTS_IN_MBSS);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_MESH_CHAN_REGULATORY);
|
|
|
- CASE_RETURN_STRING(WLAN_REASON_MESH_CHAN);
|
|
|
- default:
|
|
|
- return "Unknown";
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
/**
|
|
|
* __wlan_hdd_cfg80211_disconnect() - cfg80211 disconnect api
|
|
|
* @wiphy: Pointer to wiphy
|
|
@@ -20624,9 +20748,9 @@ static int __wlan_hdd_cfg80211_disconnect(struct wiphy *wiphy,
|
|
|
false, true, vdev);
|
|
|
hdd_objmgr_put_vdev(vdev);
|
|
|
|
|
|
- hdd_info("%s(vdevid-%d): Disconnect from userspace; reason:%d (%s)",
|
|
|
- dev->name, adapter->vdev_id, reason,
|
|
|
- hdd_ieee80211_reason_code_to_str(reason));
|
|
|
+ hdd_nofl_info("%s(vdevid-%d): Received Disconnect reason:%d %s",
|
|
|
+ dev->name, adapter->vdev_id, reason,
|
|
|
+ hdd_ieee80211_reason_code_to_str(reason));
|
|
|
status = wlan_hdd_disconnect(adapter, reasonCode, reason);
|
|
|
if (0 != status) {
|
|
|
hdd_err("wlan_hdd_disconnect failed, status: %d", status);
|