diff --git a/core/hdd/inc/wlan_hdd_wext.h b/core/hdd/inc/wlan_hdd_wext.h index 05a9c05b1052..a24c8031ccba 100644 --- a/core/hdd/inc/wlan_hdd_wext.h +++ b/core/hdd/inc/wlan_hdd_wext.h @@ -300,9 +300,6 @@ extern int iw_get_ap_address(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wrqu, char *extra); -extern int iw_set_auth(struct net_device *dev, struct iw_request_info *info, - union iwreq_data *wrqu, char *extra); - extern int iw_set_var_ints_getnone(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wrqu, char *extra); diff --git a/core/hdd/src/wlan_hdd_assoc.c b/core/hdd/src/wlan_hdd_assoc.c index 34c0f51ebee8..9390c76c3eac 100644 --- a/core/hdd/src/wlan_hdd_assoc.c +++ b/core/hdd/src/wlan_hdd_assoc.c @@ -5600,257 +5600,6 @@ int iw_get_essid(struct net_device *dev, return ret; } -static enum nl80211_wpa_versions iw2nl_wpa_version(int iw_value) -{ - enum nl80211_wpa_versions nl_value = 0; - - if (iw_value & IW_AUTH_WPA_VERSION_WPA) - nl_value |= NL80211_WPA_VERSION_1; - if (iw_value & IW_AUTH_WPA_VERSION_WPA2) - nl_value |= NL80211_WPA_VERSION_2; - - return nl_value; -} - -/** - * __iw_set_auth() - - * This function sets the auth type received from the wpa_supplicant - * @dev: pointer to the net device - * @info: pointer to the iw request info - * @wrqu: pointer to iwreq_data - * @extra: pointer to the data - * - * Return: 0 on success, error number otherwise - */ -static int __iw_set_auth(struct net_device *dev, struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) -{ - struct hdd_adapter *adapter = WLAN_HDD_GET_PRIV_PTR(dev); - struct hdd_context *hdd_ctx; - struct hdd_wext_state *pWextState = - WLAN_HDD_GET_WEXT_STATE_PTR(adapter); - struct hdd_station_ctx *sta_ctx = - WLAN_HDD_GET_STATION_CTX_PTR(adapter); - tCsrRoamProfile *pRoamProfile = &pWextState->roamProfile; - eCsrEncryptionType mcEncryptionType; - eCsrEncryptionType ucEncryptionType; - int ret; - - ENTER_DEV(dev); - - hdd_ctx = WLAN_HDD_GET_CTX(adapter); - ret = wlan_hdd_validate_context(hdd_ctx); - if (ret) - return ret; - - ret = hdd_check_standard_wext_control(hdd_ctx, info); - if (0 != ret) - return ret; - - switch (wrqu->param.flags & IW_AUTH_INDEX) { - case IW_AUTH_WPA_VERSION: - sta_ctx->wpa_versions = iw2nl_wpa_version(wrqu->param.value); - break; - - case IW_AUTH_CIPHER_PAIRWISE: - { - if (wrqu->param.value & IW_AUTH_CIPHER_NONE) { - ucEncryptionType = eCSR_ENCRYPT_TYPE_NONE; - } else if (wrqu->param.value & IW_AUTH_CIPHER_TKIP) { - ucEncryptionType = eCSR_ENCRYPT_TYPE_TKIP; - } else if (wrqu->param.value & IW_AUTH_CIPHER_CCMP) { - ucEncryptionType = eCSR_ENCRYPT_TYPE_AES; - } else if (wrqu->param.value & IW_AUTH_CIPHER_WEP40) { - if ((IW_AUTH_KEY_MGMT_802_1X - == - (pWextState-> - authKeyMgmt & IW_AUTH_KEY_MGMT_802_1X)) - && (eCSR_AUTH_TYPE_OPEN_SYSTEM == - sta_ctx->conn_info.authType)) - /*Dynamic WEP key */ - ucEncryptionType = - eCSR_ENCRYPT_TYPE_WEP40; - else - /*Static WEP key */ - ucEncryptionType = - eCSR_ENCRYPT_TYPE_WEP40_STATICKEY; - } else if (wrqu->param.value & IW_AUTH_CIPHER_WEP104) { - if ((IW_AUTH_KEY_MGMT_802_1X - == - (pWextState-> - authKeyMgmt & IW_AUTH_KEY_MGMT_802_1X)) - && (eCSR_AUTH_TYPE_OPEN_SYSTEM == - sta_ctx->conn_info.authType)) - /*Dynamic WEP key */ - ucEncryptionType = - eCSR_ENCRYPT_TYPE_WEP104; - else - /*Static WEP key */ - ucEncryptionType = - eCSR_ENCRYPT_TYPE_WEP104_STATICKEY; - } else { - hdd_warn("value %d UNKNOWN IW_AUTH_CIPHER", - wrqu->param.value); - return -EINVAL; - } - - pRoamProfile->EncryptionType.numEntries = 1; - pRoamProfile->EncryptionType.encryptionType[0] = - ucEncryptionType; - } - break; - case IW_AUTH_CIPHER_GROUP: - { - if (wrqu->param.value & IW_AUTH_CIPHER_NONE) { - mcEncryptionType = eCSR_ENCRYPT_TYPE_NONE; - } else if (wrqu->param.value & IW_AUTH_CIPHER_TKIP) { - mcEncryptionType = eCSR_ENCRYPT_TYPE_TKIP; - } else if (wrqu->param.value & IW_AUTH_CIPHER_CCMP) { - mcEncryptionType = eCSR_ENCRYPT_TYPE_AES; - } else if (wrqu->param.value & IW_AUTH_CIPHER_WEP40) { - if ((IW_AUTH_KEY_MGMT_802_1X - == - (pWextState-> - authKeyMgmt & IW_AUTH_KEY_MGMT_802_1X)) - && (eCSR_AUTH_TYPE_OPEN_SYSTEM == - sta_ctx->conn_info.authType)) - mcEncryptionType = - eCSR_ENCRYPT_TYPE_WEP40; - else - mcEncryptionType = - eCSR_ENCRYPT_TYPE_WEP40_STATICKEY; - } else if (wrqu->param.value & IW_AUTH_CIPHER_WEP104) { - /* Dynamic WEP keys won't work with shared keys */ - if ((IW_AUTH_KEY_MGMT_802_1X - == - (pWextState-> - authKeyMgmt & IW_AUTH_KEY_MGMT_802_1X)) - && (eCSR_AUTH_TYPE_OPEN_SYSTEM == - sta_ctx->conn_info.authType)) { - mcEncryptionType = - eCSR_ENCRYPT_TYPE_WEP104; - } else { - mcEncryptionType = - eCSR_ENCRYPT_TYPE_WEP104_STATICKEY; - } - } else { - hdd_warn("value %d UNKNOWN IW_AUTH_CIPHER", - wrqu->param.value); - return -EINVAL; - } - - pRoamProfile->mcEncryptionType.numEntries = 1; - pRoamProfile->mcEncryptionType.encryptionType[0] = - mcEncryptionType; - } - break; - - case IW_AUTH_80211_AUTH_ALG: - { - /* Save the auth algo here and set auth type to SME - * Roam profile in the iw_set_ap_address - */ - if (wrqu->param.value & IW_AUTH_ALG_OPEN_SYSTEM) - sta_ctx->conn_info.authType = - eCSR_AUTH_TYPE_OPEN_SYSTEM; - - else if (wrqu->param.value & IW_AUTH_ALG_SHARED_KEY) - sta_ctx->conn_info.authType = - eCSR_AUTH_TYPE_SHARED_KEY; - - else if (wrqu->param.value & IW_AUTH_ALG_LEAP) - /*Not supported */ - sta_ctx->conn_info.authType = - eCSR_AUTH_TYPE_OPEN_SYSTEM; - pWextState->roamProfile.AuthType.authType[0] = - sta_ctx->conn_info.authType; - } - break; - - case IW_AUTH_KEY_MGMT: - { -#ifdef FEATURE_WLAN_ESE -#define IW_AUTH_KEY_MGMT_CCKM 8 /* Should be in linux/wireless.h */ - /*Check for CCKM AKM type */ - if (wrqu->param.value & IW_AUTH_KEY_MGMT_CCKM) { - hdd_debug("CCKM AKM Set %d", wrqu->param.value); - /* Set the CCKM bit in authKeyMgmt */ - /* - * Right now, this breaks all ref to authKeyMgmt because - * our code doesn't realize it is a "bitfield" - */ - pWextState->authKeyMgmt |= IW_AUTH_KEY_MGMT_CCKM; - } else if (wrqu->param.value & IW_AUTH_KEY_MGMT_PSK) { - /* Save the key management */ - pWextState->authKeyMgmt |= IW_AUTH_KEY_MGMT_PSK; - } else if (!(wrqu->param.value & IW_AUTH_KEY_MGMT_802_1X)) { - /* Save the key management anyway */ - pWextState->authKeyMgmt = wrqu->param.value; - } else { /* It must be IW_AUTH_KEY_MGMT_802_1X */ - /* Save the key management */ - pWextState->authKeyMgmt |= - IW_AUTH_KEY_MGMT_802_1X; - } -#else - /* Save the key management */ - pWextState->authKeyMgmt = wrqu->param.value; -#endif /* FEATURE_WLAN_ESE */ - } - break; - - case IW_AUTH_TKIP_COUNTERMEASURES: - { - if (wrqu->param.value) { - hdd_debug("Counter Measure started %d", - wrqu->param.value); - pWextState->mTKIPCounterMeasures = - TKIP_COUNTER_MEASURE_STARTED; - } else { - hdd_debug("Counter Measure stopped=%d", - wrqu->param.value); - pWextState->mTKIPCounterMeasures = - TKIP_COUNTER_MEASURE_STOPED; - } - } - break; - case IW_AUTH_DROP_UNENCRYPTED: - case IW_AUTH_WPA_ENABLED: - case IW_AUTH_RX_UNENCRYPTED_EAPOL: - case IW_AUTH_ROAMING_CONTROL: - case IW_AUTH_PRIVACY_INVOKED: - - default: - - hdd_warn("called with unsupported auth type %d", - wrqu->param.flags & IW_AUTH_INDEX); - break; - } - - EXIT(); - return 0; -} - -/** - * iw_set_auth() - set auth callback function - * @dev: Pointer to the net device. - * @info: Pointer to the iw_request_info. - * @wrqu: Pointer to the iwreq_data. - * @extra: Pointer to the data. - * - * Return: 0 for success, error number on failure. - */ -int iw_set_auth(struct net_device *dev, struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) -{ - int ret; - - cds_ssr_protect(__func__); - ret = __iw_set_auth(dev, info, wrqu, extra); - cds_ssr_unprotect(__func__); - - return ret; -} - /** * __iw_set_ap_address() - set ap address * @dev: pointer to the net device diff --git a/core/hdd/src/wlan_hdd_wext.c b/core/hdd/src/wlan_hdd_wext.c index bb657adaaa30..81b03b48adc3 100644 --- a/core/hdd/src/wlan_hdd_wext.c +++ b/core/hdd/src/wlan_hdd_wext.c @@ -12978,7 +12978,7 @@ static const iw_handler we_handler[] = { (iw_handler) NULL, /* -- hole -- */ (iw_handler) iw_set_genie, /* SIOCSIWGENIE */ (iw_handler) iw_get_genie, /* SIOCGIWGENIE */ - (iw_handler) iw_set_auth, /* SIOCSIWAUTH */ + (iw_handler) NULL, /* SIOCSIWAUTH */ (iw_handler) NULL, /* SIOCGIWAUTH */ (iw_handler) NULL, /* SIOCSIWENCODEEXT */ (iw_handler) NULL, /* SIOCGIWENCODEEXT */