Browse Source

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
Jeff Johnson 7 years ago
parent
commit
4bcdafa674
1 changed files with 1 additions and 196 deletions
  1. 1 196
      core/hdd/src/wlan_hdd_wext.c

+ 1 - 196
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 */