From 4bcdafa674c6a64e722cd66d0baa8ed9b50e985d Mon Sep 17 00:00:00 2001 From: Jeff Johnson Date: Sun, 15 Oct 2017 11:33:42 -0700 Subject: [PATCH] qcacld-3.0: Remove obsolete STA support for SIOCSIWGENIE At one time the predecessor to the current driver was managed via wireless extensions, but now the driver is managed by cfg80211. The STA implementation of SIOCSIWGENIE should no longer be used, so remove it. Change-Id: I95cdb9431edace942ccef40efee918316a9f6cb9 CRs-Fixed: 2128582 --- core/hdd/src/wlan_hdd_wext.c | 197 +---------------------------------- 1 file changed, 1 insertion(+), 196 deletions(-) diff --git a/core/hdd/src/wlan_hdd_wext.c b/core/hdd/src/wlan_hdd_wext.c index d40369c46449..58bf6edfb7ac 100644 --- a/core/hdd/src/wlan_hdd_wext.c +++ b/core/hdd/src/wlan_hdd_wext.c @@ -5342,201 +5342,6 @@ static int iw_set_bitrate(struct net_device *dev, return ret; } -/** - * __iw_set_genie() - SIOCSIWGENIE ioctl handler - * @dev: device upon which the ioctl was received - * @info: ioctl request information - * @wrqu: ioctl request data - * @extra: ioctl extra data - * - * Return: 0 on success, non-zero on error - */ -static int __iw_set_genie(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_wext_state *pWextState = - WLAN_HDD_GET_WEXT_STATE_PTR(adapter); - uint8_t *genie = NULL; - uint8_t *base_genie = NULL; - uint16_t remLen; - struct hdd_context *hdd_ctx; - int ret; - - ENTER_DEV(dev); - - hdd_ctx = WLAN_HDD_GET_CTX(adapter); - ret = wlan_hdd_validate_context(hdd_ctx); - if (0 != ret) - return ret; - - ret = hdd_check_standard_wext_control(hdd_ctx, info); - if (0 != ret) - return ret; - - if (!wrqu->data.length) { - hdd_clear_roam_profile_ie(adapter); - EXIT(); - return 0; - } - - base_genie = mem_alloc_copy_from_user_helper(wrqu->data.pointer, - wrqu->data.length); - if (NULL == base_genie) { - hdd_err("mem_alloc_copy_from_user_helper fail"); - return -ENOMEM; - } - - genie = base_genie; - - remLen = wrqu->data.length; - - hdd_debug("iw_set_genie ioctl IE[0x%X], LEN[%d]", genie[0], - genie[1]); - - /* clear any previous genIE before this call */ - memset(&pWextState->genIE, 0, sizeof(pWextState->genIE)); - - while (remLen >= 2) { - uint16_t eLen = 0; - uint8_t elementId; - - elementId = *genie++; - eLen = *genie++; - remLen -= 2; - - hdd_debug("IE[0x%X], LEN[%d]", elementId, eLen); - - if (remLen < eLen) { - hdd_err("Remaining len: %u less than ie len: %u", - remLen, eLen); - ret = -EINVAL; - goto exit; - } - - switch (elementId) { - case IE_EID_VENDOR: - /* should have at least OUI */ - if ((IE_LEN_SIZE + IE_EID_SIZE + IE_VENDOR_OUI_SIZE) > eLen) { - ret = -EINVAL; - goto exit; - } - - if (0 == memcmp(&genie[0], "\x00\x50\xf2\x04", 4)) { - uint16_t curGenIELen = pWextState->genIE.length; - - hdd_debug("Set WPS OUI(%02x %02x %02x %02x) IE(len %d)", - genie[0], genie[1], genie[2], - genie[3], eLen + 2); - - if (SIR_MAC_MAX_IE_LENGTH < - (pWextState->genIE.length + eLen)) { - hdd_err("genIE. Need bigger buffer space"); - QDF_ASSERT(0); - ret = -ENOMEM; - goto exit; - } - /* save to Additional IE; it should be - * accumulated to handle WPS IE + other IE - */ - memcpy(pWextState->genIE.addIEdata + - curGenIELen, genie - 2, eLen + 2); - pWextState->genIE.length += eLen + 2; - } else if (0 == memcmp(&genie[0], "\x00\x50\xf2", 3)) { - hdd_debug("Set WPA IE (len %d)", eLen + 2); - if ((eLen + 2) > (sizeof(pWextState->WPARSNIE))) { - hdd_err("genIE, Need bigger buffer space"); - ret = -EINVAL; - QDF_ASSERT(0); - goto exit; - } - memset(pWextState->WPARSNIE, 0, - MAX_WPA_RSN_IE_LEN); - memcpy(pWextState->WPARSNIE, genie - 2, - (eLen + 2)); - pWextState->roamProfile.pWPAReqIE = - pWextState->WPARSNIE; - pWextState->roamProfile.nWPAReqIELength = - eLen + 2; - } else { - /* any vendorId except WPA IE should - * be accumulated to genIE - */ - uint16_t curGenIELen = pWextState->genIE.length; - - hdd_debug("Set OUI(%02x %02x %02x %02x) IE(len %d)", - genie[0], genie[1], genie[2], - genie[3], eLen + 2); - - if (SIR_MAC_MAX_IE_LENGTH < - (pWextState->genIE.length + eLen)) { - hdd_err("genIE. Need bigger buffer space"); - QDF_ASSERT(0); - ret = -ENOMEM; - goto exit; - } - /* save to Additional IE; it should be - * accumulated to handle WPS IE + other IE - */ - memcpy(pWextState->genIE.addIEdata + - curGenIELen, genie - 2, eLen + 2); - pWextState->genIE.length += eLen + 2; - } - break; - case DOT11F_EID_RSN: - hdd_debug("Set RSN IE (len %d)", eLen + 2); - if ((eLen + 2) > (sizeof(pWextState->WPARSNIE))) { - hdd_err("genIE, Need bigger buffer space"); - ret = -EINVAL; - QDF_ASSERT(0); - goto exit; - } - memset(pWextState->WPARSNIE, 0, MAX_WPA_RSN_IE_LEN); - memcpy(pWextState->WPARSNIE, genie - 2, (eLen + 2)); - pWextState->roamProfile.pRSNReqIE = - pWextState->WPARSNIE; - pWextState->roamProfile.nRSNReqIELength = eLen + 2; - break; - - default: - hdd_err("Set UNKNOWN IE %X", elementId); - goto exit; - } - remLen -= eLen; - - /* Move genie only if next element is present */ - if (remLen >= 2) - genie += eLen; - } -exit: - EXIT(); - qdf_mem_free(base_genie); - return ret; -} - -/** - * iw_set_genie() - SSR wrapper for __iw_set_genie() - * @dev: pointer to net_device - * @info: pointer to iw_request_info - * @wrqu: pointer to iwreq_data - * @extra: pointer to extra ioctl payload - * - * Return: 0 on success, error number otherwise - */ -static int iw_set_genie(struct net_device *dev, - struct iw_request_info *info, - union iwreq_data *wrqu, char *extra) -{ - int ret; - - cds_ssr_protect(__func__); - ret = __iw_set_genie(dev, info, wrqu, extra); - cds_ssr_unprotect(__func__); - - return ret; -} - /** * __iw_get_encode() - SIOCGIWENCODE ioctl handler * @dev: device upon which the ioctl was received @@ -12820,7 +12625,7 @@ static const iw_handler we_handler[] = { (iw_handler) iw_get_power_mode, /* SIOCGIWPOWER */ (iw_handler) NULL, /* -- hole -- */ (iw_handler) NULL, /* -- hole -- */ - (iw_handler) iw_set_genie, /* SIOCSIWGENIE */ + (iw_handler) NULL, /* SIOCSIWGENIE */ (iw_handler) NULL, /* SIOCGIWGENIE */ (iw_handler) NULL, /* SIOCSIWAUTH */ (iw_handler) NULL, /* SIOCGIWAUTH */